{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e274cfdc",
   "metadata": {},
   "source": [
    "# Designing Nonlinear Kalman Filters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2ad53db4",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4c05134d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "        <style>\n",
       "        .output_wrapper, .output {\n",
       "            height:auto !important;\n",
       "            max-height:100000px;\n",
       "        }\n",
       "        .output_scroll {\n",
       "            box-shadow:none !important;\n",
       "            webkit-box-shadow:none !important;\n",
       "        }\n",
       "        </style>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#format the book\n",
    "import book_format\n",
    "book_format.set_style()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c5160bcb",
   "metadata": {},
   "source": [
    "## Introduction\n",
    "\n",
    "**作者注：我最初计划有一个设计非线性章节来比较各种方法。 这可能会也可能不会发生，但目前本章没有有用的内容，我建议不要阅读.**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "615ced27",
   "metadata": {},
   "source": [
    "我们看到卡尔曼滤波器合理地跟踪球。 然而，正如已经解释过的，这是一个愚蠢的例子； 我们可以在真空中以任意精度预测轨迹； 在这个例子中使用卡尔曼滤波器是一种不必要的复杂化。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0a2fd01",
   "metadata": {},
   "source": [
    "### Kalman Filter with Air Drag\n",
    "\n",
    "我将省去第 1 步、第 2 步打字方法，并以您在非玩具工程问题中使用的更自然的方式进行处理。 我们已经开发了一种卡尔曼滤波器，它在真空中跟踪球方面表现出色，但没有将空气阻力的影响纳入模型。 我们知道流程模型是用 $\\textbf{F}$ 实现的，所以我们将立即将注意力转向它。\n",
    "\n",
    "理论上，$\\textbf{F}$ 计算的计算是\n",
    "\n",
    "$$x' = Fx$$\n",
    "\n",
    "没有空气阻力，我们有\n",
    "\n",
    "$$\n",
    "\\mathbf{F} = \\begin{bmatrix}\n",
    "1 & \\Delta t & 0 & 0 & 0 \\\\\n",
    "0 & 1 & 0 & 0 & 0 \\\\\n",
    "0 & 0 & 1 & \\Delta t & \\frac{1}{2}{\\Delta t}^2 \\\\\n",
    "0 & 0 & 0 & 1 & \\Delta t \\\\\n",
    "0 & 0 & 0 & 0 & 1\n",
    "\\end{bmatrix}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a341b078",
   "metadata": {},
   "source": [
    "这对应于方程\n",
    "\n",
    "$$ \n",
    "\\begin{aligned}\n",
    "x &= x + v_x \\Delta t \\\\\n",
    "v_x &= v_x \\\\\n",
    "\\\\\n",
    "y &= y + v_y \\Delta t + \\frac{a_y}{2} {\\Delta t}^2 \\\\\n",
    "v_y &= v_y + a_y \\Delta t \\\\\n",
    "a_y &= a_y\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "从上面的部分我们知道我们的新欧拉方程必须是\n",
    "\n",
    "$$ \n",
    "\\begin{aligned}\n",
    "x &= x + v_x \\Delta t \\\\\n",
    "v_x &= v_x \\\\\n",
    "\\\\\n",
    "y &= y + v_y \\Delta t + \\frac{a_y}{2} {\\Delta t}^2 \\\\\n",
    "v_y &= v_y + a_y \\Delta t \\\\\n",
    "a_y &= a_y\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7d44c327",
   "metadata": {},
   "source": [
    "## Realistic 2D Position Sensors\n",
    "\n",
    "最后一个例子中的位置传感器不太现实。 通常，没有提供 (x,y) 坐标的“原始”传感器。 我们有 GPS，但 GPS 已经使用卡尔曼滤波器来创建过滤输出； 我们不应该通过另一个卡尔曼滤波器来改善信号，除非我们加入额外的传感器来提供额外的信息。 我们稍后会解决这个问题。\n",
    "\n",
    "考虑以下设置。 在开阔的场地中，我们在已知位置放置了两个发射器，每个发射器都发射我们可以检测到的信号。 我们处理信号并确定我们离该信号有多远，并带有一些噪声。 首先，让我们看一下它的视觉描述。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8dbab807",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/+62/W233camTZt21WtZWVnswQcflDROX1daWsoAsE2bNom2EfvOI1d74YUXWP/+/Vvcns7Z9nn88cdZly5dmMvlcnucztuWAcC+//77xr+7XC6WkJDA/vGPfzS+Vl1dzfR6Pfviiy9EP6e112wxss/sN2fHjh3o168f4uPjG1+bNGkSampqcOzYMdH3REREXDVjPX78eKhUKuzatUvymH3BTz/9hIqKCtxzzz3Ntv38888RExODvn374rnnnoPZbOYQoe95+eWXER0djczMTPzjH//wWGq2b98+2O12jB8/vvG1nj17omPHjtixYwePcH2ayWRCVFRUs+3o3P2VzWbDvn37rjrnVCoVxo8fL3rO7dix46r2wKXrL52jnplMJgBo9hytq6tDp06dkJKSgunTp4t+pwW6U6dOISkpCZ07d8bcuXNx/vx50bZ0zradzWbDZ599hnvvvReCIIi2o/O29fLy8lBcXHzVuRkeHo6srCzRc7Mt12wxmraFzU9xcfFViT6Axr8XFxeLvicuLu6q1zQaDaKiokTfE2g+/PBDTJo0CR06dPDYbs6cOejUqROSkpJw+PBh/OEPf0Bubi6+++47TpH6ht/97ncYMGAAoqKisH37djz33HMoKirCv/71L7fti4uLodPpmjynEh8fT+doM06fPo033ngDr732msd2dO5erby8HE6n0+319MSJE27fI3b9pXNUnMvlwhNPPIHhw4ejb9++ou169OiBjz76COnp6TCZTHjttdeQnZ2NY8eONXtdDiRZWVlYtGgRevTogaKiIixcuBAjR47E0aNHERoa2qQ9nbNt98MPP6C6uhrz5s0TbUPnbdtcPv9ac2625ZotRpJk/9lnn8Urr7zisU1OTk6zD9mQ5rVlrC9evIjVq1fj66+/bvbzr3zOoV+/fkhMTMS4ceNw5swZdOnSpe2B+4DWjO38+fMbX0tPT4dOp8ODDz6Iv//979Dr9VKH6pPacu4WFBRg8uTJmDlzJh544AGP7w3kc5fI55FHHsHRo0c91pUDwLBhwzBs2LDGv2dnZ6NXr15499138f/+3/+TOkyfMWXKlMb/n56ejqysLHTq1Alff/017rvvPhkj8z8ffvghpkyZgqSkJNE2dN76JkmS/aeeesrjb4YA0Llz5xZ9VkJCQpMnjy+vWJKQkCD6nmsfXnA4HKisrBR9j69qy1h//PHHiI6Oxo033tjq/rKysgBcml3194SpPedxVlYWHA4H8vPz0aNHjybHExISYLPZUF1dfdXsfklJid+do2JaO76FhYUYO3YssrOz8d5777W6v0A6d92JiYmBWq1usuKTp3MuISGhVe0D3aOPPtq4IERrZzm1Wi0yMzNx+vRpiaLzDxEREejevbvoONE52zbnzp3D2rVrW33nk87blrl8/pWUlCAxMbHx9ZKSEmRkZLh9T1uu2WIkSfZjY2MRGxvrlc8aNmwYXnrpJZSWljaW5qxZswZhYWHo3bu36Huqq6uxb98+DBw4EACwfv16uFyuxi98f9HasWaM4eOPP8Zdd90FrVbb6v4OHjwIAFedrP6qPefxwYMHoVKpmpSTXTZw4EBotVqsW7cOt9xyCwAgNzcX58+fv2rWxJ+1ZnwLCgowduxYDBw4EB9//DFUqtY/bhRI5647Op0OAwcOxLp16zBjxgwAl0pO1q1bh0cffdTte4YNG4Z169bhiSeeaHxtzZo1AXOOthRjDI899hi+//57bNy4EWlpaa3+DKfTiSNHjmDq1KkSROg/6urqcObMGdx5551uj9M52zYff/wx4uLiMG3atFa9j87blklLS0NCQgLWrVvXmNzX1NRg165doqtRtuWaLapVj/NK4Ny5c+zAgQNs4cKFLCQkhB04cIAdOHCA1dbWMsYYczgcrG/fvmzixIns4MGDbNWqVSw2NpY999xzjZ+xa9cu1qNHD3bx4sXG1yZPnswyMzPZrl272NatW1m3bt3Y7Nmzuf98SrN27VoGgOXk5DQ5dvHiRdajRw+2a9cuxhhjp0+fZn/961/Z3r17WV5eHvvxxx9Z586d2ahRo3iHrWjbt29nr7/+Ojt48CA7c+YM++yzz1hsbCy76667GttcO7aMMfbQQw+xjh07svXr17O9e/eyYcOGsWHDhsnxIyjaxYsXWdeuXdm4cePYxYsXWVFRUeOfK9vQudu8L7/8kun1erZo0SJ2/Phx9pvf/IZFREQ0rnZ25513smeffbax/bZt25hGo2GvvfYay8nJYS+88ALTarXsyJEjcv0IivTwww+z8PBwtnHjxqvOT7PZ3Njm2rFduHAhW716NTtz5gzbt28fu/3225nBYGDHjh2T40dQrKeeeopt3LiR5eXlsW3btrHx48ezmJgYVlpayhijc9YbnE4n69ixI/vDH/7Q5Bidty1XW1vbmMMCYP/617/YgQMH2Llz5xhjjL388sssIiKC/fjjj+zw4cNs+vTpLC0tjTU0NDR+xnXXXcfeeOONxr83d81uKdmT/bvvvpsBaPJnw4YNjW3y8/PZlClTWFBQEIuJiWFPPfUUs9vtjcc3bNjAALC8vLzG1yoqKtjs2bNZSEgICwsLY/fcc0/jLxCBbPbs2Sw7O9vtsby8vKvG/vz582zUqFEsKiqK6fV61rVrV/bMM88wk8nEMWLl27dvH8vKymLh4eHMYDCwXr16sb/97W/MYrE0trl2bBljrKGhgf32t79lkZGRzGg0sptuuumqBJZc8vHHH7u9Rlw5V0Hnbsu98cYbrGPHjkyn07EhQ4awnTt3Nh4bPXo0u/vuu69q//XXX7Pu3bsznU7H+vTpw5YvX845YuUTOz8//vjjxjbXju0TTzzR+N8hPj6eTZ06le3fv59/8Ao3a9YslpiYyHQ6HUtOTmazZs1ip0+fbjxO52z7rV69mgFgubm5TY7Redtyl3PRa/9cHj+Xy8X+/Oc/s/j4eKbX69m4ceOajHmnTp3YCy+8cNVrnq7ZLSUwxljr7gUQQgghhBBCfIHi19knhBBCCCGEtA0l+4QQQgghhPgpSvYJIYQQQgjxU5TsE0IIIYQQ4qco2SeEEEIIIcRPUbJPCCGEEEKIn6JknxBCCCGEED9FyT4hhBBCCCF+ipJ9QgghhBBC/BQl+4QQQgghhPgpSvYJIYQQQgjxU/8f1YlKxLRig1kAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "circle1=plt.Circle((-4, 0), 5, color='#004080', \n",
    "                   fill=False, linewidth=20, alpha=.7)\n",
    "circle2=plt.Circle((4, 0), 5, color='#E24A33', \n",
    "                   fill=False, linewidth=5, alpha=.7)\n",
    "\n",
    "fig = plt.gcf()\n",
    "ax = fig.gca()\n",
    "\n",
    "plt.axis('equal')\n",
    "plt.xlim((-10, 10))\n",
    "plt.ylim((-10, 10))\n",
    "\n",
    "plt.plot ([-4, 0], [0, 3], c='#004080')\n",
    "plt.plot ([4, 0], [0, 3], c='#E24A33')\n",
    "plt.text(-4, -.5, \"A\", fontsize=16, horizontalalignment='center')\n",
    "plt.text(4, -.5, \"B\", fontsize=16, horizontalalignment='center')\n",
    "\n",
    "ax.add_artist(circle1)\n",
    "ax.add_artist(circle2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dbba03c1",
   "metadata": {},
   "source": [
    "在这里，我试图显示发射机 A，以红色绘制，位于 (-4,0)，第二个 B，以蓝色绘制，位于 (4,0)。红色和蓝色圆圈表示从发射器到机器人的范围，宽度表示每个发射器的 $1\\sigma$ 角度误差的影响。在这里，我给蓝色发射器的误差比红色发射器的误差大。机器人最可能的位置是两个圆圈相交的位置，我用红线和蓝线描绘了它。你会反对我们有两个交点，而不是一个，但我们会在设计测量功能时看到我们如何处理它。\n",
    "\n",
    "这是一种非常常见的传感器设置。飞机仍然使用这个系统来导航，它被称为 DME（距离测量设备）。今天 GPS 是一个更常见的导航系统，但我曾在飞机上工作，我们将这样的传感器与 GPS、INS、高度计等一起集成到我们的过滤器中。我们稍后将解决所谓的*多传感器融合* ;现在我们将只解决这个简单的配置。\n",
    "\n",
    "第一步是设计我们的状态变量。我们将假设机器人以恒定速度沿直线方向行进。这在很长一段时间内不太可能是正确的，但在短时间内是可以接受的。这与之前的问题没有什么不同 - 我们将要跟踪机器人的位置和速度的值。因此，\n",
    "\n",
    "$$\\mathbf{x} = \n",
    "\\begin{bmatrix}x\\\\v_x\\\\y\\\\v_y\\end{bmatrix}$$\n",
    "\n",
    "下一步是设计状态转移函数。 这也将与之前的问题相同，所以不用多说，\n",
    "\n",
    "$$\n",
    "\\mathbf{x}' = \\begin{bmatrix}1& \\Delta t& 0& 0\\\\0& 1& 0& 0\\\\0& 0& 1& \\Delta t\\\\ 0& 0& 0& 1\\end{bmatrix}\\mathbf{x}$$\n",
    "\n",
    "下一步是设计控制输入。 我们没有，所以我们设置 ${\\mathbf{B}}=0$。\n",
    "\n",
    "下一步是设计测量函数 $\\mathbf{z} = \\mathbf{Hx}$。 我们可以使用勾股定理对测量进行建模。\n",
    "\n",
    "$$\n",
    "z_a = \\sqrt{(x-x_A)^2 + (y-y_A)^2} + v_a\\\\[1em]\n",
    "z_b = \\sqrt{(x-x_B])^2 + (y-y_B)^2} + v_b\n",
    "$$\n",
    "\n",
    "我们看到了一个迫在眉睫的问题。 卡尔曼滤波器是为线性方程设计的，这显然是非线性的。 在接下来的章节中，我们将研究几种以稳健的方式处理非线性问题的方法，但现在我们将做一些更简单的事情。 如果我们知道机器人的大致位置，那么我们就可以围绕该点线性化这些方程。 我现在可以为这项技术开发广义数学，但让我只展示工作示例，为该开发提供背景。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa402497",
   "metadata": {},
   "source": [
    "我们将计算 $\\mathbf{H}$ 相对于机器人位置 $\\mathbf{x}$ 的偏导数，而不是计算 $\\mathbf{H}$。 您可能熟悉偏导数的概念，但如果不熟悉，它仅表示 $\\mathbf{H}$ 相对于机器人的位置如何变化。 它被计算为 $\\mathbf{H}$ 的偏导数，如下所示：\n",
    "\n",
    "$$\\frac{\\partial \\mathbf{h}}{\\partial \\mathbf{x}} = \n",
    "\\begin{bmatrix}\n",
    "\\frac{\\partial h_1}{\\partial x_1} & \\frac{\\partial h_1}{\\partial x_2} &\\dots \\\\\n",
    "\\frac{\\partial h_2}{\\partial x_1} & \\frac{\\partial h_2}{\\partial x_2} &\\dots \\\\\n",
    "\\vdots & \\vdots\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "让我们计算一阶偏导数。 我们想找到\n",
    "\n",
    "$$\\frac{\\partial }{\\partial x} \\sqrt{(x-x_A)^2 + (y-y_A)^2}\n",
    "$$\n",
    "\n",
    "我们计算为\n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\frac{\\partial h_1}{\\partial x} &= ((x-x_A)^2 + (y-y_A)^2))^\\frac{1}{2} \\\\\n",
    "&= \\frac{1}{2}\\times 2(x-x_a)\\times ((x-x_A)^2 + (y-y_A)^2))^{-\\frac{1}{2}} \\\\\n",
    "&= \\frac{x_r - x_A}{\\sqrt{(x_r-x_A)^2 + (y_r-y_A)^2}} \n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "我们继续计算两个距离方程关于 $x$、$y$、$dx$ 和 $dy$ 的偏导数，得到\n",
    "\n",
    "$$\\frac{\\partial\\mathbf{h}}{\\partial\\mathbf{x}}=\n",
    "\\begin{bmatrix}\n",
    "\\frac{x_r - x_A}{\\sqrt{(x_r-x_A)^2 + (y_r-y_A)^2}} & 0 & \n",
    "\\frac{y_r - y_A}{\\sqrt{(x_r-x_A)^2 + (y_r-y_A)^2}} & 0 \\\\\n",
    "\\frac{x_r - x_B}{\\sqrt{(x_r-x_B)^2 + (y_r-y_B)^2}} & 0 &\n",
    "\\frac{y_r - y_B}{\\sqrt{(x_r-x_B)^2 + (y_r-y_B)^2}} & 0 \\\\\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "这是非常痛苦的，而且这些是非常简单的方程。 对于更复杂的系统，计算雅可比行列式可能极其困难甚至不可能。 但是，通过使用 SymPy 模块 [1]，有一种简单的方法可以让 Python 为您完成工作。 SymPy 是一个用于符号数学的 Python 库。 它的全部能力超出了本书的范围，但它可以执行代数、积分和微分方程、找到微分方程的解等等。 我们将使用它来计算我们的雅可比行列式！\n",
    "\n",
    "首先，一个简单的例子。 我们将导入 SymPy，初始化其漂亮的打印功能（将使用 LaTeX 打印方程）。 然后我们将声明一个符号供 NumPy 使用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "431da1e5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\phi$"
      ],
      "text/plain": [
       "\\phi"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sympy\n",
    "from sympy import init_printing\n",
    "init_printing(use_latex='mathjax')\n",
    "\n",
    "phi, x = sympy.symbols('\\phi, x')\n",
    "phi"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01908909",
   "metadata": {},
   "source": [
    "请注意我们如何为符号“phi”使用乳胶表达式。 这不是必需的，但如果你这样做，它会在输出时呈现为 LaTeX。 现在让我们做一些数学运算。 $\\sqrt{\\phi}$ 的导数是什么？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a6b31f69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{1}{2 \\sqrt{\\phi}}$"
      ],
      "text/plain": [
       " 1  \n",
       "────\n",
       "2⋅√φ"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sympy.diff('sqrt(phi)')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1e3b2d8",
   "metadata": {},
   "source": [
    "我们可以分解方程。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "54891704",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(\\phi - 1\\right) \\left(\\phi^{2} + 1\\right)$"
      ],
      "text/plain": [
       "        ⎛ 2    ⎞\n",
       "(φ - 1)⋅⎝φ  + 1⎠"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sympy.factor('phi**3 -phi**2 + phi - 1')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "26b14610",
   "metadata": {},
   "source": [
    "SymPy 有一个非凡的功能列表，尽管我很喜欢使用它的功能，但我们无法在此处全部介绍。 相反，让我们计算雅可比行列式。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "15b9bdf0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}\\frac{x - x_{a}}{\\sqrt{\\left(x - x_{a}\\right)^{2} + \\left(y - y_{a}\\right)^{2}}} & 0 & \\frac{y - y_{a}}{\\sqrt{\\left(x - x_{a}\\right)^{2} + \\left(y - y_{a}\\right)^{2}}} & 0\\\\\\frac{x - x_{b}}{\\sqrt{\\left(x - x_{b}\\right)^{2} + \\left(y - y_{b}\\right)^{2}}} & 0 & \\frac{y - y_{b}}{\\sqrt{\\left(x - x_{b}\\right)^{2} + \\left(y - y_{b}\\right)^{2}}} & 0\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "⎡           x - xₐ                           y - yₐ              ⎤\n",
       "⎢ ──────────────────────────   0   ──────────────────────────   0⎥\n",
       "⎢    _______________________          _______________________    ⎥\n",
       "⎢   ╱         2           2          ╱         2           2     ⎥\n",
       "⎢ ╲╱  (x - xₐ)  + (y - yₐ)         ╲╱  (x - xₐ)  + (y - yₐ)      ⎥\n",
       "⎢                                                                ⎥\n",
       "⎢          x - x_b                          y - y_b              ⎥\n",
       "⎢────────────────────────────  0  ────────────────────────────  0⎥\n",
       "⎢   _________________________        _________________________   ⎥\n",
       "⎢  ╱          2            2        ╱          2            2    ⎥\n",
       "⎣╲╱  (x - x_b)  + (y - y_b)       ╲╱  (x - x_b)  + (y - y_b)     ⎦"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import symbols, Matrix\n",
    "phi = symbols('\\phi')\n",
    "phi\n",
    "\n",
    "x, y, xa, xb, ya, yb, dx, dy = symbols('x y x_a x_b y_a y_b dx dy')\n",
    "\n",
    "H = Matrix([[sympy.sqrt((x-xa)**2 + (y-ya)**2)], \n",
    "            [sympy.sqrt((x-xb)**2 + (y-yb)**2)]])\n",
    "\n",
    "state = Matrix([x, dx, y, dy])\n",
    "H.jacobian(state)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "295a7d95",
   "metadata": {},
   "source": [
    "简而言之，条目 (0,0) 包含机器人的 x 坐标与发射机 A 的 x 坐标之间的差值除以机器人与 A 之间的距离。 (2,0) 包含相同，除了 y 坐标 机器人和发射器。 底行包含相同的计算，除了发射机 B。0 条目说明状态变量的速度分量； 当然，范围不会为我们提供速度。\n",
    "\n",
    "该矩阵中的值随着机器人位置的变化而变化，因此不再是常数； 我们将不得不为过滤器的每个时间步长重新计算它。\n",
    "\n",
    "如果你看这个，你可能会意识到这只是 x/dist 和 y/dist 的计算，所以我们可以将其转换为三角形式而不失一般性：\n",
    "\n",
    "$$\\frac{\\partial\\mathbf{h}}{\\partial\\mathbf{x}}=\n",
    "\\begin{bmatrix}\n",
    "-\\cos{\\theta_A} & 0 & -\\sin{\\theta_A} & 0 \\\\\n",
    "-\\cos{\\theta_B} & 0 & -\\sin{\\theta_B} & 0\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "然而，这带来了一个巨大的问题。 我们不再计算 $\\mathbf{H}$，而是 $\\Delta\\mathbf{H}$，$\\mathbf{H}$ 的变化。 如果我们将其传递到我们的卡尔曼滤波器而不改变设计的其余部分，输出将是无意义的。 回想一下，例如，我们乘以 $\\mathbf{Hx}$ 以生成由 $\\mathbf{x}$ 的给定估计得出的测量值但是现在 $\\mathbf{H}$ 围绕我们的位置线性化了 包含测量功能中的*变化*。\n",
    "\n",
    "因此，我们被迫将 $\\mathbf{x}$ 中的 *change* 用于我们的状态变量。 所以我们必须回去重新设计我们的状态变量。\n",
    "\n",
    "> 请注意，这是设计卡尔曼滤波器时完全正常的现象。 教科书将这样的例子描述为 *fait accompli*，好像很明显状态变量需要是速度，而不是位置。 也许一旦你做了足够多的这些问题，它就会变得微不足道，但在这一点上，你为什么要阅读教科书？ 我发现自己通读了多次演示文稿，试图弄清楚他们做出选择的原因，最终意识到这是因为下一页上某事的后果。 我的演示文稿较长，但它反映了设计过滤器时实际发生的情况。 您做出看似合理的设计选择，并且随着您的前进，您会发现需要您重铸早期步骤的属性。 因此，我将在某种程度上放弃我的**步骤 1**、**步骤 2** 等方法，因为许多实际问题并不是那么简单。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6c463446",
   "metadata": {},
   "source": [
    "如果我们的状态变量包含机器人的速度而不是位置，那么我们如何跟踪机器人的位置？我们不能。以这种方式线性化的卡尔曼滤波器使用所谓的*名义轨迹* - 即假设位置和轨迹方向，然后应用速度和加速度的变化来计算该轨迹的变化。不然怎么可能？回想一下显示两个范围圆相交的图形 - 有两个相交区域。想想如果两个发射器彼此非常靠近会是什么样子 - 交叉点将是两个非常长的新月形。按照设计，这种卡尔曼滤波器无法仅从到发射机的距离测量中获知您的真实位置。也许您的头脑已经开始寻找解决这个问题的方法。如果是这样，请保持参与，因为后面的部分和章节将为您提供这些技巧。在我看来，一次性提出完整的解决方案会导致更多的混乱而不是洞察力。\n",
    "\n",
    "所以让我们重新设计我们的*状态转换函数*。我们假设恒定速度和无加速度，给出状态方程\n",
    "\n",
    "$$\n",
    "\\dot{x}' = \\dot{x} \\\\\n",
    "\\ddot{x}' = 0 \\\\\n",
    "\\dot{y}' = \\dot{y} \\\\\n",
    "\\dot{y}' = 0$$\n",
    "\n",
    "这给了我们*状态转换函数*\n",
    "\n",
    "$$\n",
    "\\mathbf{F} = \\begin{bmatrix}0 &1 & 0& 0\\\\0& 0& 0& 0\\\\0& 0& 0& 1\\\\ 0& 0& 0& 0\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "最后一个复杂因素来自我们传入的测量值。 $\\mathbf{Hx}$ 现在正在计算从我们的名义位置开始的测量值的*变化*，因此我们传入的测量值不需要是到 A 和 B，但是从我们的测量范围到我们的标称位置的范围内的*变化*。\n",
    "\n",
    "这里有很多东西需要学习，所以让我们一点一点地完成代码。 首先，我们将定义一个函数来为每个时间步计算 $\\frac{\\partial\\mathbf{h}}{\\partial\\mathbf{x}}$。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6974b1f8",
   "metadata": {},
   "outputs": [],
   "source": [
    "from math import sin, cos, atan2\n",
    "\n",
    "def H_of(pos, pos_A, pos_B):\n",
    "    \"\"\" Given the position of our object at 'pos' in 2D, and two \n",
    "    transmitters A and B at positions 'pos_A' and 'pos_B', return \n",
    "    the partial derivative of H\n",
    "    \"\"\"\n",
    "\n",
    "    theta_a = atan2(pos_a[1] - pos[1], pos_a[0] - pos[0])\n",
    "    theta_b = atan2(pos_b[1] - pos[1], pos_b[0] - pos[0])\n",
    "\n",
    "    return np.array([[0, -cos(theta_a), 0, -sin(theta_a)],\n",
    "                     [0, -cos(theta_b), 0, -sin(theta_b)]])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "926f7cde",
   "metadata": {},
   "source": [
    "现在我们需要创建我们的模拟传感器。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "e1e2f522",
   "metadata": {},
   "outputs": [],
   "source": [
    "from numpy.random import randn\n",
    "\n",
    "class DMESensor(object):\n",
    "    def __init__(self, pos_a, pos_b, noise_factor=1.0):\n",
    "        self.A = pos_a\n",
    "        self.B = pos_b\n",
    "        self.noise_factor = noise_factor\n",
    "        \n",
    "    def range_of(self, pos):\n",
    "        \"\"\" returns tuple containing noisy range data to A and B\n",
    "        given a position 'pos'\n",
    "        \"\"\"\n",
    "        \n",
    "        ra = math.sqrt((self.A[0] - pos[0])**2 + (self.A[1] - pos[1])**2)\n",
    "        rb = math.sqrt((self.B[0] - pos[0])**2 + (self.B[1] - pos[1])**2)\n",
    "        \n",
    "        return (ra + randn()*self.noise_factor, \n",
    "                rb + randn()*self.noise_factor)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "22c7ab76",
   "metadata": {},
   "source": [
    "最后，我们为卡尔曼滤波器代码做好了准备。 我会将发射器定位在 x=-100 和 100 处，y=-20。 这给了我足够的空间来在机器人移动时从两者中获得良好的三角测量。 我将在 (0,0) 处启动机器人，并在每个时间步长移动 (1,1)。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2b849ac3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAugAAAFfCAYAAAAcfTnAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABd6klEQVR4nO3dd3gU1f7H8fembXojnSQkoQSUJr1I7yiioCIognpRKSpg9yqCvYP4Q+7Vi2LDgoIoKkgREAUUEJEOoUMSSnpCkk12fn8EVldAEkiy2eTzep48ZufM7HzXk4FPDmfOmAzDMBARERERkSrBxdEFiIiIiIjInxTQRURERESqEAV0EREREZEqRAFdRERERKQKUUAXEREREalCFNBFRERERKoQBXQRERERkSrEzdEF/J3VauXo0aP4+flhMpkcXY6IiIiISLkwDIPs7GyioqJwcTn/OHmVC+hHjx4lJibG0WWIiIiIiFSIQ4cOER0dfd72KhfQ/fz8gJLC/f39K/38FouF77//nt69e+Pu7l7p55eyU585J/Wb81GfOR/1mXNSvzmf0vZZVlYWMTExtrx7PmUK6DNnzmTmzJns378fgMsvv5xJkybRr18/APLz87n//vv55JNPKCgooE+fPrz55puEh4eX+hxnprX4+/s7LKB7e3vj7++vi8JJqM+ck/rN+ajPnI/6zDmp35xPWfvsQtO4y3STaHR0NC+88AIbNmxg/fr1dO/enYEDB7J161YAJkyYwNdff83cuXNZuXIlR48eZdCgQWU5hYiIiIhIjVamEfQBAwbYvX722WeZOXMma9euJTo6mlmzZjFnzhy6d+8OwLvvvkujRo1Yu3Yt7dq1K7+qRURERESqqYueg15cXMzcuXPJzc2lffv2bNiwAYvFQs+ePW37NGzYkNjYWNasWXPegF5QUEBBQYHtdVZWFlDyTwUWi+Viy7toZ87piHPLxVGfOSf1m/NRnzkf9ZlzUr85n9L2WWn7tMwB/Y8//qB9+/bk5+fj6+vL/Pnzueyyy9i0aRMeHh4EBgba7R8eHk5KSsp53+/5559nypQpZ23//vvv8fb2Lmt55WbJkiUOO7dcHPWZc1K/OR/1mfNRnzkn9ZvzuVCf5eXllep9yhzQExMT2bRpE5mZmXz++eeMGDGClStXlvVtbB599FEmTpxoe33m7tbevXuf9ybR/Px80tPTMQzjos97PoZhkJaWRnBwcI1Zh91kMhEUFISnp6ejS7koFouFJUuW0KtXL91M40TUb85HfeZ81GfOSf3mfErbZ2dmilxImQO6h4cH9erVA6Bly5b8+uuvvP766wwZMoTCwkIyMjLsRtFTU1OJiIg47/uZzWbMZvNZ293d3c/5Ac+E89q1a+Pq6lrW8i/IarUSGBiIv7//Py4gX50UFxdz5MgRwsLCnDakw/l/ZqRqU785H/WZ81GfOSf1m/O5UJ+Vtj8vOYFarVYKCgpo2bIl7u7uLFu2zNa2c+dODh48SPv27S/1NDbHjx+vsHBeU7m6ulK7dm2OHz/u6FJEREREarwyjaA/+uij9OvXj9jYWLKzs5kzZw4rVqxg8eLFBAQEcMcddzBx4kSCg4Px9/fnnnvuoX379uW+govCefnT/1MRERGRqqFMAf3YsWPceuutJCcnExAQQNOmTVm8eDG9evUCYOrUqbi4uDB48GC7BxWJiIiIiEjplCmgz5o16x/bPT09mTFjBjNmzLikokREREREyqrYauDq4vyLfNSMuyBFREREpNramZLNY/P/oNsrKygoKnZ0OZdMAd3Bunbtyvjx422v4+LimDZtmsPqEREREXEGRcVWFm1JZuhba+kzbRVz1h3kYFoeP+w496IXRUVFPPTQQ5Vc5cW56CeJStmMHDmS995776zt69ato1GjRuc9zmQyMX/+fK699toKrE5ERETEOaTlFvLJrwf5aO1BjmScAsDFBL0vi2BEhzjaJQSf8zg3NzcOHz7M1q1bufzyyyuz5DJTQK9Effv25d1337XbFhoaWikrqFgsFq2lKiIiIk5ry5FMZv+8n69+P0phkRWAYB8Pbmodw83t6lA70Mu27/bt25k/fz6PPvqo3YMnx48fz9y5cxXQK5phGJyylN9cI6vVyqnCYtwKiy74oCIvd9cyPW3UbDaf9dCmrl270rx583NOa4mLiwPguuuuA6BOnTrs378fgAULFjBlyhS2bdtGVFQUI0aM4N///jdubiVdajKZePPNN/nuu+9YtmwZDz74IJMnTy51rSIiIiKOVlhk5bstyby/5gAbDqTbtjepHcCIDnFc3TQST3f7gc4JEybYclW3bt3snsfTpk0bWrduXSm1XwqnD+inLMVcNmmxQ8697ak+eHtU3P/CX3/9lbCwMN599136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kfKggF4FGYZB12uG2AL6U//7nFp9IgBwdzXRsV4I/RpH0OuyCD1cSERERKSaUUB3oOLiYr766iumTZvGq6++hik0nm//SGHRlhQOpxv4t7sB7/rt8IttRJcGofRrHEGPRuEEeLk7unQRERERqSAK6A40+733+NcddwDQ985H8e19n63N28ONq8c9Qr8mEXRLDMPHrK4SERERqQmU+iqZpdjKz0knWbQlmUX7QnHx9MWan0PWkT1EuJvoeXkkfRtH0qVBKF4ero4uV0REREQqmQJ6BTMMgx9WrmLy8y9DaH0y6/cj85TldKsLtfvdTZtG8Yy+eRBXNgjF7KZQLiIiIlKTKaBXsEOHDtGzezcMw8DVtxa17+5KaIA3vS+PoH/jSNom9MPd1cXRZYqIiIhIFaGAXs4Mw8BkMtlex8bGMmDANXz11QK83F14sWcoN/Rqj6uL6R/eRURERERqKg3dlpPt27dz1113cdVVV53V9vjj/+b999/nZMphburTQeFcRERERM5LI+jlwDAMBg0axI4dOwDYtGkTzZs3t7W3bt2a1q1bO6g6EREREXEmGkG/CFar1e61yWTi3nvvBcDPz4/t27c7oiwRERERqQY0gl4GR48eZcaMGXz44Yf89ttvBAcH29puvfVWLBYLI0eOxN/f34FVioiIiIgz0wh6Gbzwwgs899xzHDx4kLffftuuzcfHh3vvvVfhXEREREQuSYUF9BkzZhAXF4enpydt27bll19+qahTVYji4uKzprLce++9mEwm3NzcOHHihIMqExEREZHqrEIC+qeffsrEiRN58skn2bhxI82aNaNPnz4cO3asIk5XrrKysvjqq69o1KgRCxcutGurV68es2fP5sCBA7z88ssOqlBEREREqrMKmYP+2muvMWrUKG677TYA/vOf//DNN9/wzjvv8Mgjj9jtW1BQQEFBge11VlYWABaLBYvFQmVbuXIl77zzDgBTp06lX79+du1Dhw611SdVw5m+UJ84F/Wb81GfOR/1mXNSvzmf0vZZafvUZBiGcclV/UVhYSHe3t58/vnnXHvttbbtI0aMICMjgwULFtjtP3nyZKZMmXLW+8yZMwdvb+/yLK1UrFYr48aN4+jRo7Ro0YJHHnkEDw+PSq9DRERERKqXvLw8hg0bRmZm5j/et1juI+gnTpyguLiY8PBwu+3h4eG2dcL/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HtSrV4+WLVvy/PPP06xZM15//fVyv8YU0E/z8PCgZcuWLFu2zLbNarWybNky2rdv78DKpLRycnJISkoiMjLS0aVIKcTHxxMREWF3zWVlZbFu3Tpdc07m8OHDnDx5UteeAxmGwbhx45g/fz7Lly8nPj7err1ly5a4u7vbXW87d+7k4MGDut4c5EJ9di6bNm0C0LVWhVitVgoKCsr9GtMUl7+YOHEiI0aMoFWrVrRp04Zp06aRm5vLbbfd5ujS5BweeOABBgwYQJ06dTh69ChPPvkkrq6uDB061NGlyWk5OTl2Iz379u1j06ZNBAcHExsby/jx43nmmWeoX78+8fHxPPHEE0RFRXHttdc6rmj5x34LDg5mypQpDB48mIiICJKSknjooYeoV68effr0cWDVNdvYsWOZM2cOCxYswM/PzzbnNSAgAC8vLwICArjjjjuYOHEiwcHB+Pv7c88999C+fXvatWvn4Oprpgv1WVJSEnPmzKF///7UqlWLzZs3M2HCBDp37kzTpk0dXH3N9Oijj9KvXz9iY2PJzs5mzpw5rFixgsWLF5f/NVZ+C81UD2+88YYRGxtreHh4GG3atDHWrl3r6JLkPIYMGWJERkYaHh4eRu3atY0hQ4YYe/bscXRZ8hc//PCDAZz1NWLECMMwSpZafOKJJ4zw8HDDbDYbPXr0MHbu3OnYouUf+y0vL8/o3bu3ERoaari7uxt16tQxRo0aZaSkpDi67BrtXP0FGO+++65tn1OnThljxowxgoKCDG9vb+O6664zkpOTHVd0DXehPjt48KDRuXNnIzg42DCbzUa9evWMBx980MjMzHRs4TXY7bffbtSpU8fw8PAwQkNDjR49ehjff/+9rb08rzGTYRjGpfw2ISIiIiIi5Udz0EVEREREqhAFdBERERGRKkQBXURERESkClFAFxERERGpQhTQRURERESqEAV0EREREZEqRAFdRERERKQKUUAXEREREalCFNBFRERERKoQBXQRERERkSpEAV1EREREpAr5f7tuy3wEzARFAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import kf_book.book_plots as bp\n",
    "from filterpy.kalman import KalmanFilter\n",
    "import math\n",
    "import numpy as np\n",
    "\n",
    "pos_a = (100, -20)\n",
    "pos_b = (-100, -20)\n",
    "\n",
    "f1 = KalmanFilter(dim_x=4, dim_z=2)\n",
    "\n",
    "f1.F = np.array ([[0, 1, 0, 0],\n",
    "                  [0, 0, 0, 0],\n",
    "                  [0, 0, 0, 1],\n",
    "                  [0, 0, 0, 0]], dtype=float)\n",
    "\n",
    "f1.R *= 1.\n",
    "f1.Q *= .1\n",
    "\n",
    "f1.x = np.array([[1, 0, 1, 0]], dtype=float).T\n",
    "f1.P = np.eye(4) * 5.\n",
    "\n",
    "# initialize storage and other variables for the run\n",
    "count = 30\n",
    "xs, ys = [], []\n",
    "pxs, pys = [], []\n",
    "\n",
    "# create the simulated sensor\n",
    "d = DMESensor(pos_a, pos_b, noise_factor=3.)\n",
    "\n",
    "# pos will contain our nominal position since the filter does not\n",
    "# maintain position.\n",
    "pos = [0, 0]\n",
    "\n",
    "for i in range(count):\n",
    "    # move (1,1) each step, so just use i\n",
    "    pos = [i, i]\n",
    "    \n",
    "    # compute the difference in range between the nominal track\n",
    "    # and measured ranges\n",
    "    ra,rb = d.range_of(pos)\n",
    "    rx,ry = d.range_of((pos[0] + f1.x[0, 0], pos[1] + f1.x[2, 0]))\n",
    "    z = np.array([[ra - rx], [rb - ry]])\n",
    "\n",
    "    # compute linearized H for this time step\n",
    "    f1.H = H_of (pos, pos_a, pos_b)\n",
    "\n",
    "    # store stuff so we can plot it later\n",
    "    xs.append(f1.x[0, 0]+i)\n",
    "    ys.append(f1.x[2, 0]+i)\n",
    "    pxs.append(pos[0])\n",
    "    pys.append(pos[1])\n",
    "    \n",
    "    # perform the Kalman filter steps\n",
    "    f1.predict()\n",
    "    f1.update(z)\n",
    "\n",
    "bp.plot_filter(xs, ys)\n",
    "bp.plot_track(pxs, pys)\n",
    "plt.legend(loc=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "72641416",
   "metadata": {},
   "source": [
    "## Linearizing the Kalman Filter\n",
    "\n",
    "现在我们已经看到了一个线性化卡尔曼滤波器的例子，我们可以更好地理解数学。\n",
    "\n",
    "我们首先假设一些函数 $\\mathbf f$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0323f7c5",
   "metadata": {},
   "source": [
    "## Example: A falling Ball\n",
    "\n",
    "**作者注：暂时忽略此部分。**\n",
    "\n",
    "在**设计卡尔曼滤波器**一章中，我首先考虑在真空中跟踪球，然后在大气中进行跟踪。 卡尔曼滤波器在真空中表现非常好，但在大气中偏离了球的路径。 让我们看看输出； 为了避免在本章中使用该章的代码，我将它们全部放在文件“ekf_internal.py”中。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "74fc6406",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvIAAAFfCAYAAAAs8SjhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAACqX0lEQVR4nOzdeXxM1/vA8c+dmex7hARJCELsWyulKLElSmnTVqsruqO/0kXpYinVvd/uuutCtaWlVaKIqFhiK6rWRIidkH2fmfv74zZDZCYLk0Tkeb9e8yL3nLnn5GYyeebcc56jqKqqIoQQQgghhKhVdDXdASGEEEIIIUTlSSAvhBBCCCFELSSBvBBCCCGEELWQBPJCCCGEEELUQhLICyGEEEIIUQtJIC+EEEIIIUQtJIG8EEIIIYQQtZChpjtwKbPZzIkTJ/Dw8EBRlJrujhBCCCGEEHahqipZWVk0atQIne7Kx9OvukD+xIkTBAUF1XQ3hBBCCCGEqBJHjx4lMDDwis9z1QXyHh4egPYNenp6Vlu7RUVF/PnnnwwcOBAHB4dqa1fIta9Jcu1rjlz7miPXvubIta8Zct1rzqXXPjMzk6CgIEu8e6WuukC+eDqNp6dntQfyrq6ueHp6you8msm1rzly7WuOXPuaI9e+5si1rxly3WuOrWtvr+njsthVCCGEEEKIWqhSgfwnn3xChw4dLKPl3bt3Z/ny5ZbyPn36oChKicdjjz1m904LIYQQQghR11Vqak1gYCCvvfYaoaGhqKrKN998w7Bhw/j7779p27YtAA8//DAzZsywPMfV1dW+PRZCCCGEEEJULpAfOnRoia9nzZrFJ598wqZNmyyBvKurKwEBAfbroRBCCCGEEKKUy17sajKZ+Pnnn8nJyaF79+6W4/PmzeP7778nICCAoUOH8tJLL5U5Kl9QUEBBQYHl68zMTEBbHFBUVGT1Ofn5+aSlpaGq6uV2vxRVVQkKCuL48eOSv76aybWvOEdHR/z8/Ox2vuLfMVu/a6LqyLWvOXLta45c+5oh173mXHrt7f0zUNRKRsP//PMP3bt3Jz8/H3d3d+bPn8/gwYMB+Oyzz2jSpAmNGjVi165dTJo0iW7duvHLL7/YPN+0adOYPn16qePz58+3+gHAYDAQGBhIUFCQXRLpC1GbpKamcujQIfLy8mq6K0IIIYSopNzcXEaOHElGRoZdsjNWOpAvLCwkJSWFjIwMFi5cyBdffMHatWtp06ZNqbqxsbH069ePxMREmjdvbvV81kbkg4KCSE1NtfoNnjx5koYNG6LX6yvT7XIV77QlO8pWP7n2FaeqKseOHaNRo0Z2OV9RURErV65kwIABkpKsmsm1rzly7WuOXPuaIde95lx67TMzM/Hz87NbIF/pqTWOjo60aNECgK5du7Jlyxbee+89Pv3001J1w8PDAcoM5J2cnHBycip13MHBweqLTVGUKnkRms1my/llpL96ybWvHJ1OZ/ffAVu/b6LqybWvOXLta45c+5oh173mFF97e1//K94Qymw2lxhRv9iOHTsAaNiw4ZU2I4QQoq4wmyEtDU6duvA4fRoyM0FRQKer+L96PTRoAE2aQNOmUL9+TX93QghhN5UK5CdPnkxUVBTBwcFkZWUxf/584uLiWLFiBUlJSZb58vXq1WPXrl1MmDCB3r1706FDh6rqvxBCiNrCbIajR+HIkQvB+aXBevG/RmPV9MHFBUNwMDe4uqJbuhSaNbsQ5DdpAg0bah8AhBCiFqhUIH/mzBnuv/9+Tp48iZeXFx06dGDFihUMGDCAo0ePsmrVKv73v/+Rk5NDUFAQ0dHRvPjii1XVdyGEEFejtDQ4cAD279cexf8/eBDy82u2b3l5KPv34w/w99+lyx0cIDgYWrWCdu2gfXvtERYGVqaBCiFETapUIP/ll1/aLAsKCmLt2rVX3KHqkF2YTXxKPAnHEjCajRh0Bq5vdD0dvDvgyZUvPBBCiGteYSEkJVkP2M+ereneXb6iIu37SkqCZcsuHDcYoGXLC4F9cZDftKmM4AshaswVz5GvbWKTY1mybwmKouDl5IVep8esmlmRtIIlBUu4s/2d9Gvez+7tPvjgg3zzzTc8+uijzJkzp0TZ2LFj+fjjj3nggQeYO3eu3duuKxRF4ddff2X48OE13RUhri05ObBrF2zffuHx779a0FtXGI2wZ4/2+PHHC8fd3aFtWy2o79QJunSBjh1BdjUXQlSDOhXIxybHsmjPIvxc/UqkOVQUBW9nb/LJZ9HeRSg6hYiQCLu3HxQUxIIFC3j33XdxcXEBtM2t5s+fT3BwsN3bs6fCwkIcHR1ruhtCiKqWnq5NOfn77wtB+/792vx2UVp2NiQkaI9iOp02FadLlwuPTp3Ay6vGuimEuDbVmfuB2YXZLNm3pFQQfzFFUfBz9WPxvsVkF2bbvQ9dunQhKCioxAZZv/zyC8HBwXTu3NlyzGw2M3v2bEJCQnBxcaFjx44sXLjQUm4ymRgzZoylvFWrVrz33nsl2oqLi6Nbt264ubnh7e3NjTfeyJEjRwDt7sClo9ZPPfUUffr0sXzdp08fxo0bx1NPPYWfnx+DBg0CYPfu3URFReHu7o6/vz/33XcfqampJZ43fvx4nnrqKXx8fPD39+fzzz8nJyeHUaNG4eHhQYsWLVi+fHmJ9vfs2cPgwYPLPO+TTz7Jc889h6+vLwEBAUybNs1S3rRpUwBuvfVWFEWxfL1z50769u2Lh4cHnp6edO3ala1bt5bzkxKijjh3DmJi4NVX4Y47oHlz8PGBiAh4+mmYNw/27q36IN7JSVtoGh4Ow4bBI4/Ayy/Dxx/DL7/A+vXaVJe0NO2DxvnzkJqqTeEpXiB74gQcP64tpk1JgcOHITlZ6/+ff8Lnn8OLL8K992Lu2ZNcPz/UqpoSYzZrI/fffw8TJ0KfPuDtDaGhMGIEvP46rFypXX8hhLgCdWZEPj4lHkVRyt1wSFEUFBTiU+KJbBFp936MHj2ar7/+mnvuuQeAr776ilGjRhEXF2epM3v2bL7//nvmzJlDaGgof/31F/feey/169fnpptuwmw2ExgYyM8//0y9evXYsGEDjzzyCA0bNuTOO+/EaDQyfPhwHn74YX744QcKCwvZvHlzpTdb+uabb3j88cdZv349AOnp6URERPDQQw/x7rvvkpeXx6RJk7jzzjuJjY0t8bznnnuOzZs38+OPP/L444/z66+/cuuttzJlyhTeffdd7rvvPlJSUnB1dSU9PZ1hw4bx0EMP8b///a/M806cOJGEhAQ2btzIgw8+yI033siAAQPYsmULDRo04OuvvyYyMtKyYdg999xD586d+eSTT9Dr9ezYsUNy6Iq6y2yGbdu0ud/LlsGWLVC5PQEvj7u7Nr+8VSvt35YtoXFjCAjQHp6eWrrIqhIWVuJLU1ERK5ctY/CAATicOaMF/UeOaI/Dh7VFubt3ax8a7CkxUXv89NOFY+3bQ9++WrB/003g62vfNoUQ17Q6E8gnHEvAy6litzW9nb1JOJZQJYH8vffey+TJky2j4+vXr2fBggWWQL6goIBXX32VVatW0b17dwCaNWtGfHw8n376KTfddBMODg5Mnz7dcs6QkBA2btzITz/9xJ133klmZiYZGRkMGTLEshFX69atK93X0NBQ3njjDcvXM2fOpHPnzrz66quWY1999RVBQUEcOHCAli1bAtCxY0dLtqLJkyfz2muv4efnx8MPPwzAyy+/zCeffMKuXbu44YYb+Oijj+jQoQOzZs2ybAhl7bwdOnRg6tSplr59+OGHrF69mgEDBlD/v9zQ3t7eBAQEWPqXkpLCs88+S9h/f8hDQ0MrfR2EqNXS0rQR6WXLYPnyqluIqtNBSIgWrBcH7MX/b9iwagP1y+XgoC1W/e8OXgmqqo3w//NPycfevdpCX3spPu/772vXqEOHC4F9797aHRIhhLChzgTyRrMRvU5fobqKomA0V00O4/r163PzzTczd+5cVFXl5ptvxs/Pz1KemJhIbm4uAwYMKPG8wsLCEtNvPvroI7766itSUlLIy8ujsLCQTp06AeDr68uDDz7IoEGDGDBgAP379+fOO++s9MZcXbt2LfH1zp07WbNmDe7u7qXqJiUllQi4i+n1eurVq0f79u0tx/z9/QEtnWnxedetW2d1q2Jb5wVto7Hic9gyceJEHnroIb777jv69+/PHXfcYXOXYSGuCaqqLUwtHnXfsMH+U2NatLgw77t1ay1Yb9bs2krPqCgQGKg9oqIuHC8q0kbVLw3wDx268jZVFXbu1B7/+5/Wh06dSgb2Ms9eCHGROhPIG3QGzKq5QtNLVFXFoKu6SzN69GjGjRsHaAH5xbKztbn5f/zxB40bNy5R5vTfH8kFCxbwzDPP8Pbbb9O9e3c8PDx48803SbhosdXXX3/Nk08+SUxMDD/++CMvvvgiK1eu5IYbbkCn06Fecju9yEr2CTc3t1J9Gzp0KK+//nqpuhd/SLh06oqiKCWOFf8MzP8FF9nZ2URGRvLWW29ZRuQrel5zOQHKtGnTGDlyJH/88QfLly9n6tSpLFiwgFtvvbXM5wlRq2RlwapVF0bdjx+3z3l1OmjTBjp3vrBos2PHuh1MOjhoH15at4Y777xwPCMDduwomdln374r+xClqhcWHr/zjvbzGDRIW0Nw881aX4QQdVqdCeTDA8OJSYzB29m73Lrp+elEhUaVW+9yRUZGUlhYiKIolkWkxdq0aYOTkxMpKSncdNNNVp+/fv16evTowRNPPGE5lpSUVKpe586d6dy5M5MnT6Z79+7Mnz+fG264gfr167N79+4SdSsyd7xLly4sWrSIpk2bYjDY76XTpUsXFi5cSNOmTa8oM46DgwMmk6nU8ZYtW9KyZUsmTJjA3Xffzddffy2BvKj9cnJg/nwtFeJff115KkhHR22+dpcuFwL39u0ljWJFeXlpc9wvft/OzS2dtnP37sv/WZnN2ge15cu16UqjR8OYMdqUJiFEnVRnstb0DO6JqqqlRqIvpaoqKiq9gntVWV/0ej179+5lz549lkWZxTw8PHjmmWeYMGEC33zzDUlJSWzfvp0PPviAb775BtDmeW/dupUVK1Zw4MABXnrpJbZs2WI5R3JyMpMnT2bjxo0cOXKEP//8k4MHD1rmyUdERLB161a+/fZbDh48yNSpU0sF9taMHTuW8+fPc/fdd7NlyxaSkpJYsWIFo0aNshpAV9QTTzxBWloaI0eOvKLzNm3alNWrV3Pq1CnS0tLIy8tj3LhxxMXFceTIEdavX8+WLVsua72AEFeNf/+F8eOhUSNtZHb16ssLDJ2dtSkj77+vjSRnZcHWrfDZZ/D441oGGQnir4yrK9xwAzzxBHzxhRbIZ2VpC44//ljLYNOgweWd++RJmDVLyzQ0aBAsWlS38voLIYA6NCLv7ujOsLBhVvPIF1NVldTcVG5veztujm5WzmI/1uaDF3vllVeoX78+s2fP5tChQ3h7e9OlSxemTJkCwKOPPsrff//NiBEjUBSFu+++myeeeMKS0tHV1ZV9+/bxzTffcO7cORo2bMjYsWN59NFHARg0aBAvvfQSzz33HPn5+YwePZr777+ff/75p8w+N2rUiPXr1zNp0iQGDhxIQUEBTZo0ITIystSUmMpo1KgRMTExzJw584rO+/bbbzNx4kQ+//xzGjduzIEDBzh37hz3338/p0+fxs/Pj9tuu63EQmEhaoXCQi0N4yefaKPvl6tpU21KxuDB2pxrCdSrn5PThWlKjz+uTZ/Ztw/WrIG4OO1RmQXJqqotZv7zT/D3h1Gj4KGHtABfCHHNU9TyhqirWWZmJl5eXmRkZFgNdo8ePUpQUNBlnz82OZbF+xajoG0CpSgKqqqSlp9GQUFBle3sKmwzm81kZmbi6el5RR8I6oor/R24WFFREcuWLWPw4MGSlrOaVejaHzkCn34KX34J5SzstsrBQVsgOXiw9mjV6rKyx2QXZhOfEk/CsQSMZiMGnYHwwHB6BvfE3bH04verzaX916GD4/DUbU/h43aVZYVRVS0H/Zo12mPt2svLN9+vHzz6KNx6K9hxKuSVkvecmiHXveZceu3Li3Mr6+r57a4mESERdGvcrdQfpcjmkXT06UjDepXL7CKEEHZlMsGKFdro+x9/VD7Pe+PGFwL3fv3Aw+OKuhObHMuSfUtQFAUvJy/0Oj1m1UxMYgzLDy5nWNiwEjthX21Bv7X+G41Gdmbu5KW4l7itzW1XV/8VBdq21R7jxmnz4v/9F377TftAl5xcsfOsXq09mjeHSZPg/vuvraxCQgigDgbyoE2ziWwRWSJPfPGosBBC1IgzZ+Crr7QR+MOHK/fcrl0hOlqbNtO+vd1ytscmx1qdjqgo2h1NVVVZtGcRoA2SVDbor2pl9d9N74a3k/dV3X9Ay1TTvr32mDxZC84/+wwWLwZjBdIkJyVpaymmTYNnntH+71a1U0eFENWnTgbyQghxVVBVlPh4+PxzWLiwcosVXVxg5EhtnvUlez7YQ3ZhNkv2LbG5pgi0gNjP1Y/F+xaTW5jH4j2rcFYakZPvzPF8R3LyHMnOdyIv3wGTqrBm62k8nJbhYnDDbFYxqyomVcVsBpO5+P/aHYj6Hk4E+rgQ6OP6378X/q/XF7D+6PoyR80r2/+8ojyWHVxW4Q8tNUKngwEDtMfp0/DNN1pQbyVrWSknTsDEidoC2aee0kb7vb2rusdCiComgbwQQlS3jAx033xD37ffxpCSUrnnhoVpwfv9919WIFbRqSPxKfEoimIJalUV8gsNZOY4k53nRHZxoJ7nREaujqXrijCb+5fbfmaOCmSXW+9cTiH7TmVZLTPojbg65+Hp2hwPl0LcXArYc2wbP+74i7s69mNQaL9S/bdFURSKTEV8tu0zOgV0qlDQ361xt5pfG+DvD889p42yx8VpAf0vv5T/YfDcOXjpJXjjDRg7Vgvq/9ukTwhR+0ggL4QQ1WX7dpgzB+bPR5+TQ4WXORkM2qLFxx/Xss1c5tSZikwd6d74JpJTc1iw9QDp2a3JzHUmM8eZjBxnioyX/ydDUcwoCiioOOj16BQoMheiKKBXtG9JUVRUTKiqQmGRCyYbeykZTQYyczzIzLn4aDAAa7bm4eu+DEfHDDxcO+LpWoCnawEebvl4uBTgYCh90syCTE5nn65Q0K+gEJ8SX2JqZo3S6SAiQnucPQvffqtNzzp4sOznZWXBa69pO8g+9BA8+ywEB1dLl4UQ9iOBvBBCVKXcXG3Tpk8+gYv2e6iQwEAt88iYMdoGQFfg4vniqqqQledEZo4TmTnOZOY2ISPHmRWbzpNfEPPfMyqevlBRCtE7ZNLA0wF35wLcXApxdym0/N/VqZDihFSqqnI4/TDuju5lpgI+m5NKv6a30cS9M8fS8khKTee3f+MpLPIgO8+JnDxHzKq1LFcK57NVwJNT50t/VHJ1KsTdJR9TkT+ZqhPuLkUkZx1H0QWTm++As1MRujLieW9nbxKOJVw9gfzF6teHp5/WRtl//RVefVXbFbYs+fnw4YfaB8z774cpUyR1pRC1iATyQghRFfbu1UZGv/kG0tMr99xBg7TR95tvvuzUgSazyon0PJJTczhw5jzz/95HYWEPMnOcyM5zshEE26Li7lKIp1s+Xq75eLgW4OZSgLtzIW4uhaw/+id6vY4+TfuUe6YicxF7U/cS1SKqzGks9d38WHt0Ca/2C+e6pr7EJP7DUdNey+7cqgq5BQ7aNJ9cJzJzncjKdSYz14mMHEeKjNZ3ic4tcCS3wBHw5JxlRL8JAD8d1e4KuDoV4upUhKtzIW7/fY9ebvl4uuXj7lKA0VyBRaY1Sa+H22/XFkDHxGjz4tevL/s5RqO22Pqbb7SA/oUXJKAXohaQQF4IIeylsFAbCZ0zR5u3XBn16sHo0doIfCUCKLNZZf/pLP5OSefQ2WwOn8shOTWHo+fzKCwxN6VJuedydDDi5pxNqwAf/L3gRN4OGnnr8XDNx6C3nQazSC0k2KNifT6SfgQdukpPY0k4loCXk9dF5eDmXISbcxH+PiXn3Kuqyr4zR3FWAlGNfmTlOpGZ62z5N7/Qdh5tVVXIyXciJ98JMkqX6xQzzk5ZrN35PR4uufi4F9I9pDnD2t5AoPdVlpNeUbTde6OiYN06LaBfsaLs55hM8PXX2hSd++7TAvoWLaqnv0KISpNAXgghrtThw9piw8vYuMncowe6xx/XRlCdncutbzSZ+fdEJpuTz5OQfJ7Nh8+RmVfxEWKD3oSHawGervna/PH/Rpq93PJxcjACKjpFx9M9nuaF1SssG+fZoqoq/m7+lpHy8iSlJdHct2JB/8XTWIxmI3qdvkLPUxSFpr71yTdm4O1cesFrfqHK3v0nqB/QkvwCJxJTz+Gk+GM2eZKb70hOvqPNYN+s6sjN9yIlH0AL3ON3m3nz9w24O0Mrfx96NK/H0I6NaOl/ZTn87apXL210fts2bcrNL7+UXd9kgrlz4bvv4N574cUXJaAX4iokgXwtMnfuXJ566inSK3ubvpqsX7+exx57jH379nHzzTfz1FNP0bdvX9LS0vD29q6W/p87d47WrVuzefNmmjZtWmXtVIXU1FTatGnD9u3bCQwMrOnuiPKoKvz5J7z/PixfXrmNmzw8MN1zD3+FhdHziSfQXbLT4sWZZQqMJtKzvDAYW5Oa7s3Oo5nkFJrKPL1OZ8LNJZfQ+l5c36QpO8+uxNu9CA/XfFydispZK6tgNBtxd3RnWNgwq3nYL1wCldTcVB7p+gh/Jv2JqqrlBv0m1UQT7/LvDoAWkBdPYzHoDJhVc7kj+cXtuDq4MqjFIKv9d9CbcXHIIsAng7SCNF7qNpg/k/4s8aHFZFbIzXcgN9+RrDwnjpwr4HS6iqnID9XoZ3VqUnY+bDuSxrYjaXwQm0hYgAdDOzZiaIdGBNdzrdD3XOW6doVFi7TdY19/HebN04J2W0wmbbrN99/DPfdoAX1oaPX1VwhRpspMkhRX4MEHH2T48OElji1cuBBnZ2fefvvtmumUnU2cOJFOnTqRnJzM3Llz6dGjBydPnsTLy8tq/WnTptGpUye79mHWrFkMGzbMEsQfPnzYkoJOURR8fX256aabWLdu3RW1k5+fz9ixY6lXrx7u7u5ER0dz+vTpMp/z4IMPluiLoihERl5YMOfn58f999/P1KlTr6hvohps2qRlj4mMhGXLKhzEH2tWnwXjI1i74QfM779PppUPm8sPrObhhW/z7sqDLEtoyYLY61mWEMZv21Q2JKWVCuKdHIoI9k/j+rAUBl2/jztu2sl9A7ZzW8+9NAxaSnjYSVoHp+Hvk4mbc3lBvBYEG3TaGE9ESATRbaJJy08jLS8N9b/vU1VV0vLSSMtPI7pNNDe3vJlhYcNIzU211LF23tTcVNr6tcVBV7Et4i/uS3hgOBkFVua6WJGen054YHiZ/c8x5ZBWYLv/ep2Kh2sh/r7ZBAecpNDlZzz9f6RnlzjuHbiN6N476d91P93CUmgVdIaGvpm4OhWW6Me+U1m8uWI/vd9cw/CP1vNlfDKnM/Mr9D1UuTZttAD94EFtOpdDOT8Tk0mbbhMWps2hP3CgevophCiTjMjXkC+++IKxY8cyZ84cRo0aVdPdsYukpCQee+yxEqPJAQEBVd5uYWEhjo6O5Obm8uWXX7LCyhzQVatW0bZtW1JTU5k1axZDhgzhwIED+F9m/uQJEybwxx9/8PPPP+Pl5cW4ceO47bbbWF/OgrLIyEi+/vpry9dOl2yZPmrUKLp27cqbb76Jr6/vZfVNVKH9+7WsHuVNS7hIkaOB3RHt2Dq0K8dbN0YF1h1ZRoHThcDJbFbZkHSOd2O3sP2wEVW9zub5nBzzadfYmSLDHpo2MOHjnm8jOL+Q97xv076sPbK2QtNf0vPTiQqNsnwdERJBt8bdSuWejwqNoldwL9wc3Sz1ABbvW4yCYhndVlWV9Px0VFSi20RTaCokJjGm0n3pGdyT5QeXV2jUX0WlV3Avm/3X6/R08ezChD4T8HbzLrf//575lwJTAR39OxLiEwKAh2shHq6FUL/kjuAn03Pwoi+JJ7zYnpJuOb7jaDo7jqbzytJ/CfDNIqK1F0/06m6ZV1/R/P52FxKiremYPBlmz9YWvJaVi95s1qbbzJ+vLcieOhX8/Kquf0KIMsmIfA144403GD9+PAsWLCgRxL/zzju0b98eNzc3goKCeOKJJ8jOtr1xSvGI9ldffUVwcDDu7u488cQTmEwm3njjDQICAmjQoAGzZs0q8bzy2pk7dy7e3t6sWLGC1q1b4+7uTmRkJCdPnrTaj+JR73PnzjF69GgURWHu3LnExcWhKIrVqTRz585l+vTp7Ny5E71ej4+PD3PnzgUgPT2dhx56iPr16+Pp6UlERAQ7d+4s9X1/8cUXhISE4PzfvOJly5bh5OTEDTfcUKq9evXqERAQQLt27ZgyZQqZmZkkJCTYvLZlycjI4Msvv+Sdd94hIiKCrl278vXXX7NhwwY2bdpU5nOdnJwICAiwPHx8Si6Oa9u2LY0aNeLXX3+9rL6JKnLyJDz2GLRtW+EgPjWoHjFjB/HOzxNZMmkYx9sEwn93Yvxc/VhyYAnnCvL4av1h+r2zlnu/TGBbshn1kikb7i75NG+Uyo3tkrmt9y5G9NmF0fMzggIO4+thK4jXFC8Yhf8C3HLuHFwaBFv64OhOZItIpvaZyisRrzC1z1QiW0RagvhiESERvNrvVaJCo9ApOkxmEzpFR1RoFLP7zSYiJIKewT0vqy/FU30qMuo/PGx4ib5d2v8Xe71IF88uFe6/p5MnUS2iLEF8WQK8XHHz3sIvT9zIuuf6cnu4AS/3i4N9hVPnPZm/XqXX6/Hc+XkMn25cyZRVLxCTGINZNZfI7//C6heITY4tt90r1qSJFtAnJmqv9YqM0H/4oTbN5p13tIXeQohqd02MyA/9IJ6zWQVXeBZtu3CdogAV22ylvocTv4/vWalWJk2axMcff8zSpUvp169fiTKdTsf7779PSEgIhw4d4oknnuC5557j448/tnm+pKQkli9fTkxMDElJSdx+++0cOnSIli1bsnbtWjZs2MDo0aPp378/4eHhFW4nNzeXt956i++++w6dTse9997LM888w7x580r1ISgoiJMnT9KqVStmzJjBiBEj8PLyKjNQHjFiBLt37yYmJoY///yTrKwsy0j+HXfcgYuLC8uXL8fLy4tPP/2Ufv36ceDAAcsodWJiIosWLeKXX35Br9cWwK1bt46u5WxVn5eXx7fffguAo+OF9HTz5s3j0UcfLfO5y5cvp1evXmzbto2ioiL697+wi2VYWBjBwcFs3LjR6geJYnFxcTRo0AAfHx8iIiKYOXMm9erVK1GnW7durFu3jjFjxpTZH1ENMjLgzTfh3Xe1fPDlMBv07OzRjJ3Du3O4U1OrGzepKqRmuLPzUGNizrphUktOUXBxKiSofjoBvln4+2Tj5nJpgKRwOuc07o7u1HerX26fvJ292XV6V4Xnu0e3iS4V4FZGcdBsK896ZebeX9qXio76F9ezV/9fin2pUgtti+f1H8zYRJ7jbwy/0Y+MHBeST/qSfNKXzFyX/75PHZuTTGxOMuHjcSOtg8/g3ug8Br22FsDb2RtVVVm0Z1GJ779KBQdrex5MnqxtGPXFF2WP0Kena7nrP/5Y+10ZPvyyNywTQlTeNRHIn80q4NTVMu+wDMuXL2fJkiWsXr2aiIjSb8hPPfWU5f9NmzZl5syZPPbYY2UG8mazma+++goPDw/atGlD37592b9/P8uWLUOn09GqVStef/111qxZYwnkK9JOUVERc+bMofl/afDGjRvHjBkzrPZBr9cTEBCg7Rbp5VWh6TQuLi64u7tjMBgICAjA1dUVFxcX4uPj2bx5M2fOnLFMO3nrrbdYvHgxCxcu5JFHHgG06TTffvst9etfCGSOHDlCo0aNrLbXo0cPdDodubm5qKpK165dS3yQuuWWWyzXx5bGjRsDcOrUKRwdHfH29i5R7u/vz6lTp2w+PzIykttuu42QkBCSkpKYMmUKUVFRbNy40fJhBKBRo0b8Xd4mLqJqFRRowczMmdqW9uUJCIDx43kn7DxZPm5Wg9Mio47kk77sO9qA85mlA+WGvpm0DDpNE/8MdLqyR6sddY4czzpOaL3yFx0WB5bVEQRX1JX0paJTfeypsgttDToD2YXZLNm3xPJhxds9n86hJ+jU4gTns1w5dMKXxOP1KCjSBhTSstzY8G8IW/cHERqYSqvgM3i6Flju4Czet5hujbtV7TSbiwUHa8H5xQF9WaPuSUlw221w003aCH2XLtXTTyHquGsikK/v4VR+pXJd3oh8ZXTo0IHU1FSmTp1Kt27dcHcv+Ya8atUqZs+ezb59+8jMzMRoNJKfn09ubi6urtYzHjRt2hQPjwspzvz9/dHr9eh0uhLHzlyUEq8i7bi6ulqCeICGDRuWOEdV2blzJ9nZ2aVGqfPy8khKSrJ83aRJkxJBfHEdZxvp+3788UfCwsLYvXs3zz33HHPnzsXholvHHh4eJa5jVbjrrrss/2/fvj0dOnSgefPmxMXFlfhQ4eLiQm4FRn9FFTCb4YcftMwchw+XX9/TEyZNgv/7P3BzIyP2JfSXBHvp2c7sS2lA0ol6FBlLvuXqdQXcFx7KfT1CmPvP6xUe9dXptGkfFXHp4tXqDoJtuZK+lDfqb2/hgeGVntcfnxJvWdR+MUWBep651PPMxaveX/x71IncjOsoKtDuSBYaDfx7OIB/D/sTWD+DsOAzNPbLsOTU7xncs3rn0gcFwUcfXQjoP/us7BH6tWvhuuvggQe0vPU2BleEEPZxTQTylZ3eYo3ZbCYzMxNPT88SQbA9NW7cmIULF9K3b18iIyNZvny5JXg8fPgwQ4YM4fHHH2fWrFn4+voSHx/PmDFjKCwstBnIO1wyj1FRFKvHzGZzpdqxdo7y5rTaQ3Z2Ng0bNiTOymY6F4+Au7mV/iPv5+dHWlqa1fMGBQURGhpKaGgoRqORW2+9ld27d1tG/SsztSYgIIDCwkLS09NL9On06dOVWtzbrFkz/Pz8SExMLBHInz9/vtSHFFHFilNJTpoEF63HsMnBAcaO1TbLuWihX/HIrVnVceS0D/tT6nM6zbPU0/28sgltfApT9hZeGPw1Dg4OlRr1bezRmKTzSeXWg9KLV6s7CC7L1dSXslzOQtu3NrxVYgMra07kpODto+Ltc4DC/ADcjFEcOlkPs1kHKBw7682xs954uObTKugM32YtYvnB5drdTyevEnPplx9czrCwYVV3RyUwUJsTP2ECPPdc2WtFVFXLQf/TT9rv1DPPgI2/YUKIK1OpiPWTTz6hQ4cOeHp64unpSffu3Vm+fLml/HJS8tU1TZo0Ye3atZw6dYrIyEiysrIA2LZtG2azmbfffpsbbriBli1bcuLECbu3X13tVISjoyOmS/IXd+nShVOnTmEwGGjRokWJh185mRE6d+7Mnj17ym339ttvx2AwlJhKdMstt7Bjx44yH9ddp2US6dq1Kw4ODqxevdry/P3795OSkkL37t0r/P0fO3aMc+fO0bBhwxLHd+/eTefOnSt8HnGFtm6F/v21VJLlBfGKom2Os3+/Nm/+otfk+ZxC1LzrWbmtCT+s7sxfO5uXCOL1OhOhgWcZ0v1fhnTfi1+9RFpftBtqZdIrejp54u/uf9mLV0XlXM5CW6PZWO6HsuIPboqi4OB8kp7tD3Nnn510bXkUN+cL676ycp3Zuj+YDduHsHN/V/Jygii+c1w8l97b2ZtFexZV/cLY5s21PPRr15Y/fSY3V8tq06YNxMdXbb+EqKMqFcgHBgby2muvsW3bNrZu3UpERATDhg3j33//BbSUfL///js///wza9eu5cSJE9x2221V0vHaLCgoiLi4OM6cOcOgQYPIzMykRYsWFBUV8cEHH3Do0CG+++475syZY/e2q6udimjatCnJycns2LGDc+fOUVBQQP/+/enevTvDhw/nzz//5PDhw2zYsIEXXniBrVu3lnm+QYMG8e+//9oclS+mKApPPvkkr732mmUKi4eHR6kPDpc+XFy0BWpeXl6MGTOGiRMnsmbNGrZt28aoUaPo3r17iYWuYWFhluwz2dnZPPvss2zatInDhw+zevVqhg0bRosWLRg0aJDlObm5uWzbto2BAwde1jUVlZCUBHfdBddfD7EVCH4GDYLt27XUeyFa9pJDZ7P57K8k7pyzketmrmTuWpUTqf4YTRemyHi55dEt7Ah39t3Jje0O4+elrdMwY6aNWxtLvcpkc3HQO/Bo10cvK4OLuDwVzalfPCJu0BnK/VnqFJ3lZ65TtD/Hzo5G2jc7RfRNu4jocpBG9S7+cGfg8Kl6rNgSxi/r2rPrUAC5BdqN9Yvn0mcX2s52Zje9e8OWLdrIe3nTZ44c0ebOT5sGxorvQiyEKF+lAvmhQ4cyePBgQkNDadmyJbNmzcLd3Z1NmzZdUUq+uigwMJC4uDhSU1MZNGgQISEhvPPOO7z++uu0a9eOefPmMXv2bLu327Fjx2pppyKio6OJjIykX79+tGjRgh9++AFFUVi2bBm9e/dm1KhRtGzZkrvuuosjR46Um/O9ffv2dOnShZ9++qncth944AGKior48MMPL6vv7777LkOGDCE6OprevXsTEBDAL5fcat6/fz8ZGdofYb1ez65du7jlllto2bIlY8aMoWvXrqxbt65ELvklS5YQHBxMr14yglplsrLg+ee1UcIffyy/fteusGoVxMRg6tCRLYfPM3vZXiLejiPi7bW8umwfmw+fx3xRzOZoKKB5o7MMun4fw3vupk3TMzg5aHefigPsYS2H4ay/sKajsqO+g1sOrlRgKa5cRdJrFqvIHZZAj0AKjAXkG/MJ9Cy5m7NOgeAG6Qy8/gBd2i3FyXMdBsOFpA5Zuc5sPxDEz3Edif27BcfOeqGiWObSVwudTpsLf+CANvL+32CHVWYzTJ+Ovn9/XKphvZUQdYWiXubEZ5PJxM8//8wDDzzA33//zalTp+jXrx9paWkl5g03adKEp556igkTJlg9T0FBAQUFF24hZmZmEhQURGpqKp6epeeWnjhxgqCgoMvpcplUVSUrKwsPD48KzVEV9mPPa//HH38wadIkdu3aVWVrHapSjx49GDduHCNHjrRZ5+jRozaz81RWUVERK1euZMCAAaXWRVxzVBVl/nz0U6ag2NgToUT15s0xzZhB9pBhxB9KY/X+s8TtP0tarvWFfs383OgXVp9+YfVJN/3N74m/oUOHl5OXZY1JRkEGZswMazmMno17Wr32aw6vYcmBJWU+t2/Tvpb62YXZrD+6ni0ntlBkLsJB58D1ja6nZ1BPGYm3oTpe99mF2bwU9xLeTt4239cKTYWsSV6DGTP9Q/rjoLfel7VH1pJblEvfJgM4da4BB4834NR571L13JwLaN7oDC0DU5k9YJI9v52KOXYM/csvo/v++zKrFbm6Yv7kE3R3311NHRN16r3+KnPptc/MzMTPz4+MjAyrcW5lVTqQ/+eff+jevTv5+fm4u7szf/58Bg8ezPz58xk1alSJoBy0nNh9+/bl9ddft3q+adOmMX369FLH58+fb3WBZ1BQEM2aNatMl0Ud88knnzB06NASO8zWBufOneP777/nySefLPMDzaFDhzh69Gg19qz2805MpP3nn+O7f3+5dfO9vDgwYgSrwgey6owj+zMUTGrpn4eCSjMPaOdrpp2PSoNLBiPzTHnszdnLgZwDmFQTekVPS7eWtHFrU2Ik3porea64euzK2sXG9I146K0PUqiqSnJ+MgAhziE262zL2kaQcxD+jhfuSuYXuXMmuwVns5tTZCr5t1LBzHX1IaKhmUY18FnOOzGRdl9+Sb29e8uslxIRwa6HH8ZU1ki+ENeY3NxcRo4cWXOBfGFhISkpKWRkZLBw4UK++OIL1q5dy44dOy4rkJcReSHXvnJkRL4SzpxB/9JLKHPnopQ399zNDfPEiWy59UHe3XyKhOTSay0MehMN66XRpEEGQ9o1Y1DojZed8u+av/ZXseq89hW5wwKUWSerIItgz2Cr749mMxxP9eHg8QacSPVGvSR9cq8W9XioZ1O6N/Ot3vdXkwnd22+jmzYNpYx58WqLFpi++w61nM38xJWR95uaU9Uj8pVOP+no6EiLFi0ALXvHli1beO+99xgxYsRlpeRzcnIqMUe4mIODg9UXm06nq5IpE8XpGRVFqZVTMmozufaVo9Pp7P5GbOv3rdYqKtJS5U2fru3OWgaTTmFDVDsOP/4iK042If7HkqOIPm7g5ZVCQ79UmvubMOi1D5+bTh1i48mVV5zy75q79rVIdVz7gaED6dGkR4nc7w56B25uenOJfPll1VmXss5mHnu9Hpo2zKRpw0xy8h3YeciT46ebkfPf+Ni6xHOsSzxH20aePNK7GYPbN8RBXw3vsw4OWnrWAQNg5EhtcbkVSmIihl69tJzzzzyjzbsXVUbeb2pO8bW39/W/4jzyZrOZgoKCEin5oqOjgctLySeEEFfkzz/hqaegnNv6AIc6hzD/gVtZXtSF4+vcgFRLWYifGwM6FHKscAn13fxKjGYWp/xTVZVFexYByKJSYVNF8uWXVaeieexdnQoJCznIvPsfYNmu83wRf4ij5/MA+PdEJv+3YAdvxOxn1I1NuatbMO5O1bCVTLdu8PffMG4cfPut9TpGo5Zv/s8/tTqyiZQQFVapj76TJ0/mr7/+4vDhw/zzzz9MnjyZuLg47rnnngqn5BNCiCpx6BAMH66liSwniE/39+KLSffywMjpfHEyguOp3payQB9n3rqjI7+O7cpp0x+lgviLVXvKP1EnVTajUX13Tx7o0ZTfx1/PwxE6/LxyLPWOp+cx84+9dJ+9mvdWHaTQaK76b8DDA775BubNQy1rKsHq1dqusOWkGhZCXFCpj+Nnzpzh/vvv5+TJk3h5edGhQwdWrFjBgAEDAC0ln06nIzo6moKCAgYNGlRi0x0hhLC77GyYPRveegsKC8usWuRkYGV0H97pcDeJaf4XD8Dj5lxAaHAiD/dsz80tA4lJjLFs1lMWRbmQ8u9q36FU1F7Fd3wW71uMgnZHqHgufXp+OipqiXSjscmxLNm3BEVRGBzuxZl0D3YnB3DsrA8AWflG3l11gOW7T/Lm7R1pH1j2LrR2MXIkxuuuI+uWW2wvPD95UstR/9138N/dfSGEbZUK5L/88ssyy52dnfnoo4/46KOPrqhTQghRLlWFH36AZ5+FCuxOvL1ne16LGMXmgpZw0TpWV+dCOjQ7QWhgKjrFzNYTm7m5ZRQJxxLwcqpYcOPt7E3CsQQJ5EWVigiJoFvjbiXm0ht0BqJCo0rMt49NjmXRnkX4uV64mxTgm02AbyLp2c78m+xP4gk/VFXHvlNZDP94PY/f1Jzx/VrgZNCX1YUrFxJC/KuvcvO2behfe01brXupvDy4/XZ49VVtzwdJgiCETdUwQU4IIezs779h/HhYv77cqsebBvDmkFEsdusBBRcCAhenQjo0O0lo4FkM+uLpCgpGs5Zhw2g2otdVLKhRlAvPE6IqlTffPrswmyX7lpQI4i/m7Z7Pje2PEBZ8hrW7gsnM8cRkVvlwTSIr95zmzTs60CHQu0q/B1WvxzxtGvpBg+Cee+DYMesVp0yBffvgs8/ASlIMIUQl58gLIUSNys3VRuCvu67cIN7k48uih6Zw0x1zWOx2I/yXls/ZsYjrw1KI7r2L1k3OXBTEa/OMDTptfMOgM9icj3ypi58nRE2KT4mv0JSwel553NQlgaFdFAw6re7+01nc+vEG3lyxjwKjqeo727s37NoFAwfarvPtt9C/P6Sm2q4jRB0mgXwtMnfu3BKpPa8269evp3379jg4ODB8+HDi4uJQFIX09HSgevp/7tw5GjRowOHDh6u0HXuIiYmhU6dOlvSbohyxsdChgzYXvoxrpup0bIq6i/AHP+bpej0w/hdgOzkUcV2ro0T33kXbpqdLBPDF0vPTCQ8MByA8MJyMgrJTV1p7nhA1qTJTwnxdvfBrsIXfxvWkbSNtEarJrPLRmiSGfhDPrmPpVdjT//j4wB9/wBNP2K4THw/h4RXKRCVEXSOBfDV58MEHGT58eIljCxcuxNnZmbfffrtmOmVnEydOpFOnTiQnJzN37lx69OhhWRhtzbRp0+jUqZNd+zBr1iyGDRtG06ZNATh8+LBldEpRFHx9fbnppptYt27dFbXz2Wef0adPHzw9PUt8WLnY+fPnueeee/D09MTb25sxY8aQnX0hs0lkZCQODg7MmzfvivpyzUtPh4cfhn79bOaiLna4/fUMG/0Bd3W4l9T/NmrydDbQuulBonvvpF3IKRwM1j8EqKqKikqv4F6AlvJPVdVyR+UvfZ4QNcloNlZ446fiKWFtGnmyeOyNTBzQEge99twDp7O59eMNvBFTDaPzBgN89BG8/77tPPKHDkH37rByZdX2RYhapnbfC374Ydi92y6nUgB3kwlFX8mFPu3aweefV7q9L774grFjxzJnzhxGjRpV6edfjZKSknjssccIDAy0HCtrMzB7KSwsxNHRkdzcXL788ktWrFhRqs6qVato27YtqampzJo1iyFDhnDgwAH8/f2tnLF8ubm5REZGEhkZyeTJk63Wueeeezh58iQrV66kqKiIUaNG8cgjjzB//nxLnQcffJD333+f++6777L6cc1bvFgbqTt5ssxqGfUDmNZ7NL82725ZGOfmqGd0zxAe6tWMbacctMV/BuvzhotT90W3ibYsGCxO+XfposHynidETTLoDJhVc4WC+YunhDnodTzZL5QBbfx5duFOdh/PxGRW+Tguidh9Z/jsvusIrudatZ0fPx5atIARIyArq3R5RgZERWmbvT32WNX2RYhaonaPyO/eDZs22eWhbNqEYcsWlMo+9zI+SLzxxhuMHz+eBQsWlAji33nnHdq3b4+bmxtBQUE88cQTJUZwL1U8ov3VV18RHByMu7s7TzzxBCaTiTfeeIOAgAAaNGjArFmzSjyvvHaKp8CsWLGC1q1b4+7uTmRkJCdtBFPFo97nzp1j9OjRKIrC3LlzS02tudjcuXOZPn06O3fuRK/X4+Pjw9y5cwFIT0/noYceon79+nh6ehIREcHOnTtLfd9ffPEFISEhODs7A7Bs2TKcnJys7ltQr149AgICaNeuHVOmTCEzM5OEhASb17Y8Tz31FM8//7zNPRL27t1LTEwMX3zxBeHh4fTs2ZMPPviABQsWcOKiDCtDhw5l69atJJUz0lznnDoFd9wBt95aZhBfpNfzYc87CL/vQ35t0QMUBUeDjod6hvDXc315emArvFwciAiJILpNNGn5aaTlpVlG2VVVJS0vjbT8tBKp+4pd7vOEqClXOiWsdUNPfn3iRp4ZeGF0ft+pLG75KJ71idUwTz0qCjZsgCZNrJebTPD449qmb0ZZYC5E7R6Rr4UmTZrExx9/zNKlS+nXr1+JMp1Ox/vvv09ISAiHDh3iiSee4LnnniszF39SUhLLly8nJiaGpKQkbr/9dg4dOkTLli1Zu3YtGzZsYPTo0fTv35/w8PAKt5Obm8tbb73Fd999h06n49577+WZZ56xOg0kKCiIkydP0qpVK2bMmMGIESPw8vIqM1AeMWIEu3fvJiYmhj///JOsrCzLSP4dd9yBi4sLy5cvx8vLi08//ZR+/fpx4MABfH19AUhMTGTRokX88ssv6P+7i7Ju3Tq6du1a5vXPy8vj2/92F3R0dLQcnzdvHo8++miZz12+fDm9elVs+sTGjRvx9vbmuuuusxzr378/Op2OhIQEbr31VgCCg4Px9/dn3bp1NG/evELnvqapqrZxzMSJkJZWZtW/A1vx7KD/I9EvGABFMXNTawdeG9aHAC/nUvUrmrrPXs8ToiZUdBfY4ilhnQM6E5MYU+K1HR4YzoM9e9K/jT9PzNvOobM5pOcWcf9Xm3lhcGtG3di0wtN3Lku7drB5s7bB28aN1uu89x4cOKCloLUxfVOIukAC+Wq0fPlylixZwurVq4mIKD2C99RTT1n+37RpU2bOnMljjz1WZiBvNpv56quv8PDwoE2bNvTt25f9+/ezbNkydDodrVq14vXXX2fNmjWWQL4i7RQVFTFnzhxLcDlu3DhmzJhhtQ96vZ6AgAAURcHLy6tC02lcXFxwd3fHYDAQEBCAq6srLi4uxMfHs3nzZs6cOYPTf+nG3nrrLRYvXszChQt55JFHAG06zbfffkv9+vUt5zxy5AiNbGzt3aNHD3Q6Hbm5uaiqSteuXUt8kLrlllss18eWxo0bl/t9FTt16hQNGjQoccxgMODr68upU6dKHG/UqBFHjhyp8LmvWcnJ8Oij5c6BzXVw5vWbHuC7zoMx6/QoqDRrdI6OzY9h1J3G3aWnzeeWl7rP3s8TorpVZkpYM59mvLruVe2928kLvU6PWTUTkxjD8oPLGRY2jMVje/F/P/zNmv1nMZlVZizdw56Tmcwc3g5nhyrMOd+ggbbAfcwYuGg6YgnLl0OPHvD779CsWdX1RYirmATy1ahDhw6kpqYydepUunXrhru7e4nyVatWMXv2bPbt20dmZiZGo5H8/Hxyc3NxdbU+N7Fp06Z4eHhYvvb390ev16O7aMGQv78/Z86cqVQ7rq6uJUaIGzZsWOIcVWXnzp1kZ2dTr169Esfz8vJKTD9p0qRJiSC+uE7xNJtL/fjjj4SFhbF7926ee+455s6di4ODg6Xcw8OjxHWsTi4uLuTm5tZI21cFkwk++ABeeEFLL1mGtSFdmDJoHMe9tA9JTQPO06nFcbzd8wFIy5MdVoWoyC6wzXyacSjtUKlgX1G0+qqqsmjPIgC+eKAvb/+5n4/jtPfghduOkXgmm0/v64q/p/X3XLtwdobvv4ewMHj5Zet19uzRMtr88gtU8I6pENeS2h3It2tnt1OpgMlkQq/XU6kbhpXoQ+PGjVm4cCF9+/YlMjKS5cuXW4LHw4cPM2TIEB5//HFmzZqFr68v8fHxjBkzhsLCQpuB/MXBKGhvwtaOFac4rGg71s5R0ZzaVyI7O5uGDRsSFxdXquzi1JVubqWnM/j5+ZFmYzpGUFAQoaGhhIaGYjQaufXWW9m9e7dl1N/eU2sCAgJKffAxGo2cP3++1B2L8+fPl/pQUmfs3g0PPQTlrFdIc/ZgRr+H+bVtX1AUAuun0zn0GPU880rUkx1WhdCUNSWsc0BnXl33qs0Re9De8/1c/Vi8bzHdGnfjucgwQuo7MuWXvRSZYMfRdPq8vZzxg5y5/7peuDu6Wz3PFVMUeOklaNkSHnwQ8vNL10lN1bJaffaZVkeIOqR2B/KXkS3GFtVsJjszU0snaCv9lR00adKEtWvXWoL5mJgYPDw82LZtG2azmbffftsymv7TTz/Zvf3qaqciHB0dMZlKpjXr0qULp06dwmAwWFJIVlTnzp35/vvvy613++238/LLL/Pxxx8zYcIEwP5Ta7p37056ejrbtm2zzNuPjY3FbDaXaCc/P5+kpCQ6d+5c4XNfEwoKYPZsbQv2oqIyq/4e1otp/R/lnJs3DX0z6Rx6jAY+OVbryg6rQlxga0pYTGJMhTaNUhQFBe0ul6PekfgzS7ixkydb/u1MTr4TeQWOvPW7kT/3f8STfa6v2kXfI0ZA06bavPlLpicC2vvIqFHaCP3s2VDZDHRC1FK1O5CvpYKCgoiLi6Nv374MGjSImJgYWrRoQVFRER988AFDhw5l/fr1zJkzx+5tV1c7FdG0aVOSk5PZsWMHXl5eODk50b9/f7p3787w4cN54403aNmyJSdOnOCPP/7g1ltvLbF49FKDBg1i8uTJpKWl4ePjY7Oeoig8+eSTTJs2jUcffRRXV9dKT605deoUp06dIjExEYB//vkHDw8PgoOD8fX1pXXr1kRGRvLwww8zZ84cioqKGDduHHfddVeJefybNm3CycmJ7t27V7jtWm/TJm3e6549ZVY75e7LiwPHsio0HG/3XAaG7aeRX2aZz5EdVoUoX2U2jfJ29uaHf37A3dEdP1c/fFwUAnrsYc3fzTmd5olZ1bFjfztmZO3BdLPKgOb9yj/p5QoP1xbB3nIL7Nhhvc6bb8L+/TBvHrhX0V0CIa4itTv9ZC0WGBhIXFwcqampDBo0iJCQEN555x1ef/112rVrx7x585g9e7bd2+3YsWO1tFMR0dHRREZG0q9fP1q0aMEPP/yAoigsW7aM3r17M2rUKFq2bMldd93FkSNHys353r59e7p06VKhOwwPPPAARUVFfPjhh5fV9zlz5tC5c2cefvhhAHr37k3nzp357bffLHXmzZtHWFgY/fr1Y/DgwfTs2ZPPPvusxHl++OEH7rnnHptTp64peXnw9NPa4rRygvh5nSIZ8NAnbOnQkxHdFXp32VBuEA+yw6oQFVGZTaOKzEXsTd1bYhqOs6ORQdcfICz4tKXe4RMhTPrpBIlnz1VJny2CgrSdXi/ZYLGE336DG2+ElJSq7YsQVwFFrY6Jz5WQmZmJl5cXGRkZeHp6lio/evQoQUFBdm/XbDaT+d/UGl0VTq0Rpdnz2v/xxx88++yz7N69+6r/OaamptKqVSu2bt1KSEhIhZ9nz9+BoqIili1bxuDBg0uti7Cr7dvhvvvKDeCTfRryfOSTbG7SnvtuaMKE/i1xcCjkhdUvWBbs2aKqKmn5aczuN7tWpISstmsvSqnr13563PQKbxp18NxBks4nERlqfd3JgaN+bNrTBLOqvd+6OcF7I66jfxvrAy92u/ZmM7z4ojaNxpYGDbRN5erSHU8b6vprviZdeu3Li3Mr6+qOdISopJtvvplHHnmE48eP13RXynX48GE+/vjjSgXxtY7RCLNmabfEywjijYqOT8JvJ3LUhxzp1ISendfRp8MZfNwcLen0UnNTbS64Lk6nNzxseK0I4oWoSZXZNCopLYnmvrb3uGgZlEpkt324OhcAkFMAD327lcGffMXv+5eTXWh7U8MrotNpa2y+/RYu2hOkhDNnoG9f+PnnqumDEFcBmUwqrjkX58m/ml133XVlzvmv9RITtVH4TZvKrPZvg2Y8F/UkR0IC6RGWQnCDdMDJki3D3dG9Qun0ZIdVISqmMptGmVQTTbxt7LL6nxx24xawFNPZWyjICQNgzxF/Xvw5netaz+KeLgOq7nfzvvu0HPK33gpnz5YuLyjQFsqeOQNjx1ZNH4SoQTIiL4SwL1WFOXOgY8cyg/gCvQNv9L6f6FFv4tTLmeE9d9PEPx1FKZkto1hESASv9nuVqNAodIoOk9mETtERFRrF7H6zJYgXooIqc5errV9bHHS2p2IkpyWz5+weXJ3Av/Fv+PqvQqdo6Y4zsj1Zu70778dtJDY5tkq+F0CbD795s+100KoK48ZpU3GurtnEQlwxGZEXQtjPyZNaRprly8us9o9/cyYMeRq1gytDW+7Fzbl0CkprOeFlh1Uh7KOid7kKTYXEJMbg7exd6hyFpkL2pe7D1cEVRVHIN+bRpslZfJrvYe3O5mTmuGA06dmxvxNT0xNp93BXfJyqaGF/06awfj2MHAl//GG9zqxZWurKOXPAIOGPuDbUyhH5S3OPC1FXXGVr00v6+WdtRKyMIN6k6Hi/+wgeHjudljdn06tDstUgHiQnvBBVrSJ3uXoG90RVVavvPSnpKSgoJTYMDPYKpp5nHkO776FF4wtTXY6ebszQD+LZezKr6r4hT09YsgT+7/9s1/nyS7jttnJ3kRaitqh1H0nr16/P8ePHady4MXrZ8EHUMampqXh5VSz/c7VJT9duW8+bV2a1ZJ+GTB7+f+gjXBnU+CDlJcyQnPBCVL3y7nIVT8NZtGdRqZ1gj2Udw8nghKqq5Bbl0qZ+Gxz12sJTB4OZnu0P07BeFhv/bYLRpOd0Btz+WQK3BSsMrqpvSK+Hd9+Fxo3huees1/n9d+jfH5YuBV/fquqJENWi1v2VdHZ2pkGDBpw8edKuo5Nms5lz585Rr169qz5t4bVGrn3FOTk52SVdld2sXq1tiX7sWJnV5nUezIkXZzAi7AxrU1agKN7lnjo9P52o0Cj79FMIcdlsTcMxm80UmLRsNW3qtyHEp3QGruaNzuHnlc3anc05n+lGodHMgkN61CV7mDG8HU6GKhiQUxR49lnw94fRo8HaXfyNG6FnT1ixQstNL0QtVesCedCC+cDAQLues6ioiB07dtC+fXvJsVrN5NrXQnl58Pzz8P77ZVY77e7L16NeJPqFhwj19yC7MJu4IzEVypahotIruJe9ey6EuAwRIRF0a9yN+JR4Eo4lYDQb0ev0tPBqQRPvJpaReGu83AoYHL6HbfuD2Zui5Zf/cesxDpzJ5pN7uhLg5Vw1nb7/fqhfH26/3fpUmr17tRzzK1ZA27ZV0wchqpgMfwohKmfrVujSpdwgfmX7m9i+dC2T3nuKUH8PoHLZMiQnvBBXl+JpOFP7TOWViFeY1HMS9d3qlxnEF8sqTOP/Bjbizeh2OCja7/7fKekM+SCezcnnq67TUVEQGwv16lkvP35cG5lfv77q+iBEFZJAXghRMUYjvPKKNoK1b5/NahnObix+9g26b15J1E3tSo28R4REEN0mmrT8NNLy0iwBvaqqpOWlkZafJjnhhagFyloIe7GL77AN79SI/2tnotF/o/Cp2QWM/HwTc9cnV91i/vBwLVBvYiMffno6DBgAGzZUTftCVCEJ5IUQ5Tt4UBu1evllLaC3YVfYdZzfsJXhbzyLu7PtaVKSE16I2u9y77AFucOvj9/AjS20UXKjWWXa73t4+ued5BdVUVa6Vq20QL1DB+vleXkwdCjs31817QtRRWrlHHkhRDX66SctN3y27a3W8w2OzLtrILtGhDDM+wQhhJV7WskJL0Ttd7m7Lvu6OfLNqG68uWI/n/51CIBfth/nwOks5tzblUCfKsg336gRrF0Lw4dr/17q/HmIjNQWwgYE2L99IaqAjMgLIawrLNTyMY8YUWYQfzC4CZ98+ghHx3TF282HRXsWVe0ujkKIq8rl3mEz6HVMHtyaD+7ujIuDlr1m9/FMhn4Qz7YjaVXTWW9viImB6Gjr5YcPw+DBkFWF+e6FsCMZkRdClJaSAnfeCQkJNqsYdTpW3dmHzWN6YP4vhZyiKPi5+rF432K6Ne6Gu6N7dfVYCFGDruQO29COjQj1d+fR77Zx5FwuablFjJ67hZ8f607L/xbK25WzM/z4o5bNZvHi0uV//62V/f47OJa/kFeImiQj8kKIklas0LLSlBHEn2zYgK8+GM2mR3tZgvhiiqKgoBCfEl/VPRVCXCPCAjz5bWxPujfT5s1n5BXxwFebOZGeVzUN6vUwfz706GG9/M8/4eGH4WreTVsIKhnIz549m+uvvx4PDw8aNGjA8OHD2X/JwpA+ffpof8gvejz22GN27bQQogqYTDB1qpau7dw5m9W2RHXhq68e4kSbxjbreDt7k3DM9gcBIYS4lJerA58/cB3tGmub3p3MyOeBrzaTkVtUNQ26uMBvv2kLYa359lt48cWqaVsIO6nU1Jq1a9cyduxYrr/+eoxGI1OmTGHgwIHs2bMHN7cL+Z4ffvhhZsyYYfna1bUKFq0IIewiz5THmi0/0fzJl2m+7ZDNegWODiybMJidkZ3KPaeiKBjNtrPbCCHqpuzCbLZnbmf7uu2YMWPQGQgPDKdncE/cHd1xdzLw9YPduH3OBo6cy+XgmWwe+nYL340Jx9mhCnaBrVdPmzPfvTucOlW6/NVXoXFjeOIJ+7cthB1UKpCPiYkp8fXcuXNp0KAB27Zto3fv3pbjrq6uBFRwxXdBQQEFBQWWrzMzMwFtt8+ioir6FG5FcVvV2abQyLWvOSsTV7Jt/QdM+WYnPudybNYzNm/BF8/342RTPxRr251fQlVV9Dq9/EzLIK/7miPXvmasObyGxfsWczTzKO3926PX6ykyFvHH/j9Yun8pt7S8hb5N++LtrOPL+7sw4rPNnMspZMvhNMbN28YHd3XEoK+CGcGNG8Nvv2GIiECxsrBfHTcOU/36qMOH27/taiKv+Zpz6bW3989AUa9gB4bExERCQ0P5559/aNeuHaBNrfn3339RVZWAgACGDh3KSy+9ZHNUftq0aUyfPr3U8fnz58tIvhBVaFfmTvx//YHRS/ZjMNt+G9hzfVuSJ7zAZuM+tmdux01f/m6rOaYcunh2oYtnF3t2WQhRS+3K2sXG9I146D1KbRIH2of/LFMW3b2708FDy/V+NBs++FdPgVmr372BmRHNzFh5ul3U37GDG155BZ2VwQqToyPrZ8wgLaz81LpClCU3N5eRI0eSkZGBp6fnFZ/vsgN5s9nMLbfcQnp6OvHxFxa1ffbZZzRp0oRGjRqxa9cuJk2aRLdu3fjll1+snsfaiHxQUBCpqal2+QYrqqioiJUrVzJgwAAcHGxvZCPsT6599ctOPcHh2/vReUOSzTomvY6YR/qxbHALZvadBcBLcS/h7eRt9Q9xMVVVSStIY1afWZYNYERp8rqvOXLtq1d2YbblvUNVVZKSkmjevDk6XcnR9eL3jpl9ZloyXsUnnuOR77dTZNJClfF9m/FkRIsq66vy/fcYRo+2Wqb6+mKMi4NaGMzLa77mXHrtMzMz8fPzs1sgf9npJ8eOHcvu3btLBPEAjzzyiOX/7du3p2HDhvTr18/yi3spJycnnJycSh13cHCokRdbTbUr5NpXm127cBw2mM6Hj9usklHfk5+n3s6xtkEY8tJIOJlAZItIbmtzG4v2LMLP1c/mqFpqbirRbaLxdvOuwm/i2iGv+5oj1756JBxJwKA3YDAYMP032q3T6dDrS895NxQZLO83AH1bB/DWHR35vwU7APhgzSH8vVy594YmVdPZUaPg9GmYPLlUkXL+PA633AKbNoG/f9W0X8XkNV9ziq+9va//ZU02GzduHEuXLmXNmjUEBgaWWTc8PBzQpuEIIWrY3LkQHo5bGUF80nXN+PSzRzjWNggomYEmIiSC6DbRpOWnkZaXZtmWXVVV0vLSSMtPs7qLoxCi7ko4loCXk1eF6lrLeDWsU2NevLm15euXl+wmZreVhan2MmkSjB1rvezwYRg6FHJzq659ISqhUiPyqqoyfvx4fv31V+Li4ggJCSn3OTt27ACgYcOGl9VBIUTFZRdmE58ST8KxBIxm44WMEPW74v7MFPjiC5vPNSsKf93fm7X39Ua9aEHZpRloIkIi6Na4W6l2okKj6BXcS6bTCCFKMJqN6HUVyzhjK+PVQ72acSargM/+OoRZhScX/M13o7sR/l/eebtSFHjvPThxAn79tXT5li1wzz2wcKGWj16IGlSpQH7s2LHMnz+fJUuW4OHhwan/UjV5eXnh4uJCUlIS8+fPZ/DgwdSrV49du3YxYcIEevfuTYcOHarkGxBCaGKTY1mybwmKouDl5IVep8esmtny1wLazboP90OpNp+b4+nCLy/cRlK30nNPVVXFoCv5VnEluzgKIeoWg86AWTWXubamWPH7jbVBietDuzEkowFLd56h0GjmoW+2suDRG2jbqGKj/ZWi18O8eTBgAKxfX7p88WJ4+mn43//s37YQlVCpqTWffPIJGRkZ9OnTh4YNG1oeP/74IwCOjo6sWrWKgQMHEhYWxtNPP010dDS///57lXReCKGJTY5l0Z5FeDt74+18YTFq6/X7efbJBQSWEcQfCKnHx3MeshrEA6TnpxMeGF4l/RZCXPvCA8PJKMioUN30/HScDE68sPoFYhJjMKtmy6DEn0krUDzn0S5IC12yCow88NVmklNtp869Ii4uWsAeGmq9/L33tIcQNajSU2vKEhQUxNq1a6+oQ0KIyskuzGbJviUlFqAqZpW+X6+h9/frynzuhluv56OIJjRr4IW1G8SqqqKi0iu4VxX0XAhRF/QM7snyg8vLjSFUVSUlI4U8Yx4N3RuWGMFXFAVvZy3rTWHQcvIKo0g6bSY1u5D7vkxg4WM9CPBytn/n/fxg2TK44QbrO15PmABNm8KwYfZvW4gKqIKdFYQQ1Sk+JR5FUSx/9BzyCrlj2s9lB/Hu7uz+4CW+HdUFo40NVooz0AwPGy7z3oUQl83d0Z1hYcNIzU21GcyrqsrJrJMoKKWC+IspikKAhw+hzVcR2kB7XzqWlsf9XyWQnltYNd9Aixbw229gJcMeqgp33w2bN1dN20KUQwJ5IWq5izNCeJ7JYPT/fU2bdXtt1j/TtD5s3Uq7cTO4Lew2csw5pOenSwYaIUSVsWS8Kkgjx5Rj9f2mmU8zgr2Dy51LrygKTg5GxvTLI8jXBYADp7MZNXcLuYWlF8raRY8e8N131svy8rRMNsnJVdO2EGWQQF6IWs5oNqIoCo33Hufhx7+g4UHbadl2DujAnA9HQatWAPRt2pd7G97LoOaD0Ck6TGYTOkVHVGgUs/vNliBeCGE3ESERzOwzky6eXdDr9KXebwpMBZVKU7k/bTPfjQ7Hz10bKf87JZ3Hvt9OodFcNd/AHXfAG29YLztzBgYPhrS0qmlbCBsue0MoIcTVwaAz0Gb1Loa/8RsONkajjAYdy8dHsXVIF3SXpIFz0bswqPkghoQNqY7uCiHqMHdHd7p4dmFwr8GlNsapaJrKQlMhKekpHM08itFs5MYOHvy5tS15hfDXgbNM/GkH793VGb2u/Cw5lfbMM9rI+yeflC7btw9uuw1iYqxPwxGiCsiIvBC1mdnMPYsOcMfMX2wG8bmeLnz35n1su+U60gsyJAONEOKqZNAZyl0Qm5yWzOpDqzl4/iAAep0eb48curbZgk6n7Rq7dNdJpv62u9xzXRZFgfff10bfrYmLg4ce0ubOC1ENJJAXorbKzYW77qLFh/NtVjnTpD6ff/IwRzo1lQw0QoirWnlpKpPTktlzdg/OBi07TZCXtvu0oii0CIA+HZNQ0KbVfL8phXdXHqiajhoM8OOP0Lmz9fLvv4dZs6qmbSEuIYG8ELXR8ePQuzf8/LPNKge7teDLD0eT1shHMtAIIa56PYN7agMOVkazC02F7Evdh6uDq+VYsFdwiTrB/hnc2P7CgtP3YxP5en0VLUB1d4elSyEoyHr5Sy/BokVV07YQF5FAXojaZutWuP562LbNZpWN0eH88Ord5Ls5SQYaIUStUFaaypT0FBS0Oe+5RbmE+YXhqHcsdY4Wjc/Trvk+y9czlu7ht50nqqbDjRrBH3+Ap6f18vvug+3bq6ZtIf4ji12FqE1++gkefFBLd2aFajDw79TH+bNnPW1bc0VPVGgUvYJ7yUi8EOKqVzzYsHjfYhQUy07VxzKPYVbN5BvzaVO/DSE+ITbP0bVFJnpOsDOpEaoKT/+0A19XR3qG+tm/w+3bw8KFEBUFJlPJsrw8uOUWLcd8o0b2b1sIJJAXonZQVXjlFZg61XYdX1+UhQtp17cv7aqvZ0IIYVcRIRF0a9yN+JR4Eo4lYDQbMWOmpV9Lgr2CrY7EX0xRFNo3S6G1bzgLthylyKTy6Hdb+eGRG+gQ6G3/Dg8YoC2AHTu2dNnx49qur2vXgqtr6XIhrpBMrRHiapeXByNHlh3Eh4VBQgL07Vt9/RJCiCri7uhOZItIpvaZyisRr9AvpB/NfZqXG8SDtsmUg97AzOHtGNDGH4CcQhOjvt5CcmpO1XT4iSesB/KgTYccNUoy2YgqIYG8EFezkyfhpptgwQLbdQYOhI0btW3EhRDiGlReRpuLpeenEx4YjkGv44O7O9OtqS8A53IKuf+rBM5k5ldNJ//3P+jf33rZTz/BjBlV066o0ySQF+Jq9fff2qLWLVts1xk/Xlts5e1dbd0SQojqVlZGm4tdmmbX2UHP5w9cR1iABwBHz+fxwNdbyMwvsn8nDQYtYG/Z0nr5tGlauRB2JIG8EFejX36Bnj21+ZVWqHq9trPg++9rfzyEEOIaVlZGm2K20ux6uTjwzehuNPZ2AWDvyUwe+XYr+UUmq+e5Ij4+WlpKHx/r5Q88UPbgjBCVJIG8EFcTVdU2EomO1jZ8ssbbG2XFCnjssertmxBC1KCIkAii20STlp9GWl6aJaBXVdVqmt3swmxiEmOYHjedD7fOIrzdZtyctHNtOnSepxbswGSugnnroaFaJhtrgyz5+driVxuDNEJUlgTyQlwt8vO1vMMvvmi7TsuW2qLWfv2qr19CCHGViAiJ4NV+rxIVGoVO0WEym9ApOqJCo5jdb7YliI9NjuWF1S8QkxiDWTWj1+nxcMvjurYJ6HXaSHzMv6eY+tvucqfrXF5HI+CDD6yXnTyppaW0kUZYiMqQe/JCXA3OnoXhw2HDBtt1+vXTdnK1dctWCCHqgOKMNpEtIq2WxybHsmjPIvxc/VAUxXJcURRCGig4dEpk9d+hqKqO7zel0KK+Ow/eaDsv/WV77DHYs8d6QL99O4wbB19+af92RZ0iI/JC1LCcnVvJ7dKh7CD+iSdg+XIJ4oUQogzZhdks2bekVBB/scAGmdzYNtny9Yyle/jrwNmq6dA772iZxaz56ivtIcQVkEBeiBr097dvoOtxI67HTlktN+t18OGH8NFH4OBQzb0TQojaJT4lHkVRbAbxxVoEnic06BAAZhXGzt9O0tls+3fIYIAff9T2+rBm7FjYscP+7Yo6QwJ5IWrIvpkT6DDqeVxyC62W57k58dHUwcQObl3NPRNCiNop4VgCXk5eFarbvXUqQfXTAcjKN/LwN1vJyK2CtJTe3rBkCXh4lC7Lz9eSG6Sn279dUSdIIC9EdTOZKHxyHGEv/Q+9jYwJaQ29+fKjMaT27MLifYvJLqyCkSIhhLjGGM3Gckfji+l0Cje2P0Arfy3APpSaw7gftmM0me3fsZYtbU+jOXRIS0tproJ2xTVPAnkhqlNWFgwfjuMHH9msktIuiM8/fojUJvW1W8QoxKfEV2MnhRCidjLoDBXOQqOqKi6OOr544Dp83RwBWHcwlZl/7K2azt1+O0yYYL3st9/gzTerpl1xTZNAXojqcvSotsnT0qU2q+wc0IFv3r6fXO8Lm5l4O3uTcCyhOnoohBC1WnhgOBkFGTbLC02FJJ5LJO5wHMsTl5N4PpF/z//FOyNa46DXRvLnbjjM/ISUqung66/DjTdaL5syBeLiqqZdcc2SQF6I6rBlC3TrBrt22awSO6oPv04ejsmxZFZYRVEwmo1V3EEhhKj9egb3RFVVq6PyyWnJrD60msTziZjNZhQUAj0DiUmM4dekN7mn54X33peX7GbToXP276CDA/z0EzRoULrMbIa77oITJ+zfrrhmSSAvRFVbuBD1ppvglPXMNEWOBn5+KZq/7r8JrMztVFUVg062fBBCiPK4O7ozLGwYqbmpJYL55LRk9pzdg7PBGSeDE3nGPML8wnAyOOHt7I23szdnzUsY0F4PgNGs8vj320g5Z2OH7SvRqBEsWAA6KyHY6dMwYgQUVcGiW3FNkkBeiKqiqjB7NtxxB4qNHfyyfdyY++4D/BvRzuZp0vPTCQ8Mr6peCiHENSUiJILoNtGk5aeRlpdGgbGAfan7cDG4kG/MJ9+YT5v6bQjxubAJlKIo+Ln64eSznBtbaPt1pOUW8dC3W8jKr4Kgum9fmDXLell8PEyebP82xTVJAnkhqkJhIYwapc15tOFEk3p89tEYjrcJtFlHVVVUVHoF96qKXgohxDUpIiSCV/u9SlRoFEczjqKqKjqdjtB6ofRr1q9EEF9MURT0CkR3z6BZfW2d0oHT2Tz/yz8VXkBbKc89B0OHWi97+2345Rf7tymuOXK/XogrlF2YTXxKPAnHEjCajXhkFfLQrGX4btlt+0lRURx87XGSjsbgp6pW06WpqkpqbirRbaJxc3SzchIhhBC2uDu6E9kikoRjCTT3bV6htJTezt78c3YzXz7wDLd8GE9WvpE/dp3khmb1uO+GJvbtoE4H33wDXbtCcnLp8gcfhM6dIaT0hw4hilVqRH727Nlcf/31eHh40KBBA4YPH87+/ftL1MnPz2fs2LHUq1cPd3d3oqOjOX36tF07LcTVIjY5lhdWv0BMYgxm1UyDY2mMGftF2UH8+PHw22/c1GFoidu/xSM+qqqSlpdGWn4a0W2iiQiJqKbvRgghrj2VyS1fnFwgxM+NN2/vaDn+ytI97D5uOxvOZfPxgUWLwMmpdFlWFtx7Lxgl2YGwrVKB/Nq1axk7diybNm1i5cqVFBUVMXDgQHJycix1JkyYwO+//87PP//M2rVrOXHiBLfddpvdOy5ETYtNjmXRnkWWhVLN/j7MQ2O/pN7x89afoNPBhx/C++9r23ZT8vavTtFhMpvQKTqiQqOY3W+2BPFCCHGFKptbvji5QGS7AB7s0RSAQqOZcfO3V818+c6d4SMbe4ts2GB7Lr0QVHJqTUxMTImv586dS4MGDdi2bRu9e/cmIyODL7/8kvnz5xMRoQUgX3/9Na1bt2bTpk3ccMMN9uu5EDUouzCbJfuW4Ofqh6IodPljOze/+wd6GzsCqh4eKD/9BJGRpcqKb/9GtihdJoQQ4sqEB4YTkxiDt7N3uXXT89OJCo2yfD15cBjbjqTxz/EMDp/LZcqvu3n/rk4VHuGvsDFjYN06barNpWbMgAEDoEcP+7YprglXNEc+I0O7zeTr6wvAtm3bKCoqon///pY6YWFhBAcHs3HjRquBfEFBAQUFBZavMzMzASgqKqKoGtMvFbdVnW0KTW289nGH4jCbzahGE/2/iKXXTxtt1j3XwIPdn8+mR79+V11Ksdp47a8Vcu1rjlz7mlMT1z68YThL9y/FaCx7io2qqhjNRm5oeIOlfzrgf3e2Z9jHm8guMPL7zhN0a+LNXdfbTlJw2d59F8P69SiJiSWPm82o996LccsW8PS8rFPLa77mXHrt7f0zUNTLXIptNpu55ZZbSE9PJz5e2z5+/vz5jBo1qkRgDtCtWzf69u3L66+/Xuo806ZNY/r06aWOz58/H1dX18vpmhBVbsHJBShFRYz9dgs3brW9A+CBkHq89eiNZHm5clfDu6qxh0IIIYrtytrFxvSNeOg9bCYXyDJl0d27Ox08OpQq33FO4esDWo55g6Iysb2JxlWQg8D7wAF6Pf88OnPpu7tH+/Rh+1NP2b9RUa1yc3MZOXIkGRkZeF7mB7OLXfaI/NixY9m9e7cliL9ckydPZuLEiZavMzMzCQoKYuDAgXb5BiuqqKiIlStXMmDAABwcHKqtXVE7r/3fy//i3um/0mK77SB+V982/PrMUPydHPBTTQy+aXA19rBiauO1v1bIta85cu1rTk1d+8EMZs3hNSw5sAQdOrycvFAUBVVVySjIwIyZMS3H0LdpXxvPB+PSvXyXcBSjqvDzcU9+efwG3J3snPxv8GDUvDyYOrVUUVBcHA1Hj0a9q/KDQvKarzmXXvvimSf2clmvwHHjxrF06VL++usvAgMv3F4KCAigsLCQ9PR0vL29LcdPnz5NQECA1XM5OTnhZGW1toODQ4282GqqXVGLrv3p0zzy7A80OnDSZpW4+3sT92AfUBR0qopBMVzV31utufbXILn2NUeufc2piWs/MHQgPZr0KJEu2EHvwM1Nb6ZXcK9y0/y+OLQtfx/LYPfxTJLP5TJt6T7+N6IK5su/8AKsWqXNmb+EYfx46N0bmlxeKkx5zdec4mtv7+tfqUBeVVXGjx/Pr7/+SlxcHCGX5Dbt2rUrDg4OrF69mujoaAD2799PSkoK3bt3t1+vhagpSUkwaBCNkqwH8UYHPUuevYV/Bly4NXvp4ikhhBA140qSCzgZ9Hw0sgtD3o8nq8DIkh0n6N6sHnd1C7ZvJ/V6+P576NABMi5JeZmRoaWkjIvT6ok6r1KB/NixY5k/fz5LlizBw8ODU6dOAeDl5YWLiwteXl6MGTOGiRMn4uvri6enJ+PHj6d79+6SsUbUftu3o0ZFoZw5Y7U4382JBTPv4nCnppZjsjOrEELUTpdu9mfQGQgPDGfasFY8/dMeAKb+9i9dmvjQ0t/Dvo0HB8Onn4K1aTTx8fDaa9rIvajzKpVH/pNPPiEjI4M+ffrQsGFDy+PHH3+01Hn33XcZMmQI0dHR9O7dm4CAAH6RbYZFbbdqFepNN9kM4rN83fn6fw+WCuJTc1MZHjZcdmYVQoha5NLN/vQ6PWbVTExiDH+d/h9922ij4QVGM0/+8Df5RSb7d2LECLj/futlU6dCQoL92xS1TqUCeVVVrT4efPBBSx1nZ2c++ugjzp8/T05ODr/88ovN+fFC1AoLFqAOHoySnW21+HRjb955+3ZONfcHZGdWIYSozS7d7K94DryiKJZjTj5/0NhXO77vVBavLd9XNZ354ANo1qz0cZMJ7rlH2/1V1GmVCuSFqHPeew/uvhvFVt7Xbt1wS9hOeM8RsjOrEELUcpdu9meNoij4u/sS2iweJ4MWRs3dcJjVe0/bv0Oentp8eWvz4ZOS4Jln7N+mqFXsnDdJiGuEqsKUKdo8RFsiI+Hnn3F3dyeSENmZVQgharn4lHgURSk3E42iKHi55XBrN5UFG7Rjzy7cRcz/9aKBp7N9O9W9O7z8stWUlHz2Gdx2GwwaZN82Ra0hI/JCXKqoCEaNKjuIv+8++O03cHevvn4JIYSoUgnHEvBy8qpQXW9nb5w9ttC/tTat8nxOIRN/2onZfFn7bJZtyhS48UbrZWPGQHq6/dsUtYIE8qJOyy7MJiYxhulx03kp9iVeXf4CZwbcCN98Y/tJzz4Lc+eC5OIVQohritFsrHBeeEVRMKlG3ri9A/6e2n448YmpfBF/yP4dMxjgu+/AzUrihOPHQXZ8rbMkkBd11qVZCTyyCrjv6W9osHaL7Se98w688Qbo5FdHCCGuNQadAVWt2Ii6qqoYdAZ83Rx5585OFMf/b67Yzz/HMsp+8uUICYG33rJe9s038Pvv9m9TXPUkGhF10qVZCbxPZzBq/FcE7T1u/QkODjBvHkyYUL0dFUIIUW3CA8PJKKhYEJ6en054YDgAN7bw49HezQEoMqk8ueBvcgqM9u/go49C//7Wyx55BM6ds3+b4qomgbyocy7NStDg0GnGjPuK+ketvwGqbm6wdCmMHFnNPRVCCFGdegb3tKTWLkuBsYDD6YdZd2QdL8W+xPS46bRrlkzbRtrGUMmpOUz//V/7d1BR4MsvtWw2lzp1CsaPt3+b4qomgbyocy7OStBk5xFGPfk1nues5+LN8nJh43evwsCB1dxLIYQQ1c3d0Z1hYcNIzU21GcwfSjvEHwf/QK/TY9AZLJtFrUpeQUDgMpz+ywf409ZjLN11wv6dDA6Gd9+1XvbDD7Bokf3bFFctCeRFnVOclaD1X3u599nvcckpsFovraE3X30wmpU+adXcQyGEEDUlIiSC6DbRpOWnkZaXZgnoVVVl16ld/H3qbzr5d6KDf4dSm0UF+jgR1myn5VyTf/mHY2m59u/kqFEweLD1ssceAxu7kItrjwTyos4xmo1c//s27pj+Mw5F1ucwnmwRwJcfjiEtyA+juQrmOQohhLhqRYRE8Gq/V4kKjbJs9ldkLsKkmhgSOoRmvlZ2W0UL6Ds2LaBxg5MAZOUbefbnXfZPSako8Pnn4O1duiw1FZ54QtsPRVzzJJAXdYuq0u+7eIa8+wc6G2+shzqHMPd/D5Lt627JSiCEEKJucXd0J7JFJFP7TOWViFfo3aQ3IT4hOBmcynyeTqfQMXQvvv9tM7Lx0Dnmbjhs/w42agQffGC9bNEiWLDA/m2Kq44E8qLuMJthwgT6zI2zWWV3n7bMe20kBW7aG/XFWQmEEELUXZXZLKq+uzvXt95v+fr1mH0knrG+FuuK3HMPDB9uvWzsWDh50v5tiquKBPKibjCZ4KGH4L33bFZJuLUbi16KxuSojcCrqoqKSq/gXtXVSyGEEFepym4W1cAnjVE3NgWgwGhm4k87KTKZ7dspRYE5c6BevdJlaWlaukqZYnNNk0BeXPsKC+Guu+Drr21WWfVQBMvHR6LqtDdpVVVJzU1leNhw3Byt7KQnhBCiTrmczaImRYbRvL72N2TXsQw+WpNo/475+8PHH1sv+/13+Okn+7cprhoSyItrW24uDBsGCxdaLTbrFOY/1Y91I3uCoqCqKml5aaTlpxHdJpqIkIhq7rAQQoir0eVsFuXsoOedOzuh/2+Q6IPYRHYdS7d/5+68U3tYM368bBR1DZNAXly7MjIgMhJiYqyXOzhQ8MN3+I59xpKVQKfoiAqNYna/2RLECyGEsKjoZlGXTsvsGOTNuL4tADCZVSb8uIP8IpP9O/jRR9CgQenjZ8+if/ZZ+7cnrgqSjkNcm1JTYdAg2L7dermLCyxejMvAgUQCkS0iq7V7QgghapfizaIW7Vlk2Rn8UsXTMqPbRJeYljkuogWx+87wz/EMks7m8EbMfl4e2sa+HfTzg/ff16aSXkL3/ffUb97cdu55UWvJiLy49hw/jtq7t+0g3tMTVq6U3VqFEEJUSlmbRZU1LdNBr+PdER1xNGhh11frk9mQlGr/Dt55JwwdarWo4yefQHa2/dsUNUoCeXFtOXQItVcvlL17rZf7+UFcHNx4Y7V2SwghxLXB2mZRFZmW2aKBB5MiwyxfP/vzLjLzi+zbOUXRFr56eJQqcjtzBt306fZtT9Q4mVojrh3//os6YACKrby5jRvDqlUQFma9XAghhKiA4s2iKjstc1SPpqzac5qNh85xPD2P6b/t4e07O9q3c4GB8Prr2u6ul9B98AGMHAndutm3TVFjJJAX14YtW1AjI1HOn7de3ry5FsQ3bVqt3RJCCFE3ZRdmE58ST8KxBIxmIwadgfDAcGYMv47bPsogq8DIou3HGNqxIX1aWVmkeiUefRTmz4f4+BKHFbNZ21Nl61ZwdLRvm6JGyNQaUatlF2aTMO8N8vv0sh3Et2sH69ZJEC+EEKJaxCbH8sLqF4hJjMGsmtHr9JhVMzGJMXy47RVuv+HCQtmXluwmr9DOWWx0Ovj8c+vB+j//wBtv2Lc9UWMkkBe1VmxyLPNeu4fOo1/AObfAeqVu3WDtWmjYsHo7J4QQok6KTY5l0Z5FeDt74+3sbcluoyiK5dhp0xJaNdRCsKPn83g/9qD9OxIWBi+/bL3slVfA1loyUatIIC9qpdjkWJLnvMZDM5biWGi0WudA+0as/eIl8PWt5t4JIYSoi7ILs1myb4nN9JSgBfT13fxoHLgWB71W5/O/DrHvVKb9O/Tss9C+fenjhYXw8MNgNtu/TVGtJJAXtU52YTan/zeLUW+uQm+y/ia0v3tLfnzjARYd+5PsQkm3JYQQourFp8SjKIrNIL6Yoih4uOYx6L91rkazypRf/sFsLnuzqUpzdIQvv0TVWQn31q+HOXPs256odhLIi1rn2LSJ3P1+LDobu+v9E9GOH2fcicnZEQWF+JR4q/WEEEIIe0o4loCXk1eF6no7e+Prt5VmftrGUdtT0vlhS4r9O3X99ZiffNJ62fPPg61Mb6JWkEBe1B6qClOnEjb7c5tVtg7pwi9TbsVs0APaG2XCsYTq6qEQQog6zGg2ljsaX0xRFFSKmHXrhakvry3fx5msfLv3yzx1Kjn+/qULsrLguefs3p6oPhLIi9rBbIYJE2DGDJtV1o/owdKJQ1D1F17WiqJgNFufQy+EEELYk0FnsOz2Wh5VVTHoDHRvXo/buwYCkJVvZMbve+zfMTc3dj7+uPWy77/XMruJWqnSgfxff/3F0KFDadSoEYqisHjx4hLlDz74oGV+WPEjMrJyGyYIUYLJpOW9fe89m1VWj+nLykf7a7vaXaT4jVIIIYSoauGB4WQUZFSobnp+OuGB4QBMGdwaH1cHAJbuOsma/Wfs3reznTphvvtu64XjxoFRBr1qo0oH8jk5OXTs2JGPPvrIZp3IyEhOnjxpefzwww9X1ElRhxUVwd13w9df26yybHwk6+7tXSqIh5JvlEIIIURV6hncE1VVyx2VV1WVAlMB+UX5TI+bzrsJr9C2+QFL+UuLqyC3PGB67TVwdy9dsGsXfPqp3dsTVa/SgXxUVBQzZ87k1ltvtVnHycmJgIAAy8PHx+eKOinqqIIC1Ntvh59/tlps1in8OmkYm2+zHqirqoqKSq/gXlXZSyGEEAIAd0d3hoUNIzU31WYwr6oqO07t4Ez2GeKOxFk2jGrW8Cx+3trGhsfS8nhvdRXklm/YEKZOtV724otw9qz92xRVqkrmHMTFxdGgQQN8fHyIiIhg5syZ1KtXz2rdgoICCgoubOaTmanlUS0qKqKoqKgqumdVcVvV2abQWL32eXno7rgD/Z9/Wn2O2cHAZ0/35Vi/diim0qMWqqqSmpfKbWG34ag4ys/VBnnd1xy59jVHrn3NqQvXvldgL4xGI0sOLEGHDi8nL21hq6qSUZBBSmYKZrOZ9v7tURQF80W53G9sk8LvG70xqzo++yuJIe0a0CrA44r7VOK6P/44hi++QNm/v2Sl9HTMzz+PSVJS2tWlr3l7v/YVtaKrMqw9WVH49ddfGT58uOXYggULcHV1JSQkhKSkJKZMmYK7uzsbN25Er9eXOse0adOYPn16qePz58/H1dX1crsmajF9fj7dZs6iwe5/rJYbHR3ZPHkyq1voSchIQEHBVedqeaPMNeeiohLuFU4Hjw7V3HshhBAC8kx57M3Zy4GcA5hUE3pFT1OXpuzI2oGn3tNmdptj6e05lt4JgGA3ExPaq+gqlginwurv2EGPadNKHVcVhb9ef530li3t26CwyM3NZeTIkWRkZODp6XnF57N7IH+pQ4cO0bx5c1atWkW/fv1KlVsbkQ8KCiI1NdUu32BFFRUVsXLlSgYMGICDg0O1tSsuufZ5eShDhmLYtNFqXdXDA9Nvv6HeeCOgbQ61/uh6tpzYQpG5CAedA9c3up6eQT1xc3Srzm+jVpLXfc2Ra19z5NrXnLp+7VckrWBF0gq8nb1t1jGZFZZu6kBmjgsAL98cxn03BF9Ru9auu37ECHS//lqqrvm66zDFx4O1TaREpV167TMzM/Hz87NbIF/l6TyaNWuGn58fiYmJVgN5JycnnJycSh13cHCokV/ymmpXgEN2NsrNQzBs3WK9grc3yp9/Yrj+esshHwcfhoQNYUjYkGrq5bVJXvc1R659zZFrX3Pq6rXfdmobvq6+Zeaa1+uhR9vDxGxuDcDbKw8S2b4Rjbxdrrj9Etf93XchJgby8krU0W3diu7772HMmCtuT1xQfO3t/bqv8o9bx44d49y5czRs2LCqmxK1mGNmJmq/AbaDeD8/WLMGLgrihRBCiNqkohtGBfhm0zJQS0GZU2ji5SW7K5yfvsKaNIEpU6yXPf88pKXZtz1RJSo9Ip+dnU1iYqLl6+TkZHbs2IGvry++vr5Mnz6d6OhoAgICSEpK4rnnnqNFixYMGjTIrh0XtVN2YTbxKfEkHEvAaDZi0BnooW9GtylTcDx2zPqT/P1h9Wpo27Z6OyuEEELYkUFnwKyaKxTMd215lKNnvckrcGTV3jMs332Kwe3tPCj6zDNaeudDh0oeT02Fl1+GDz6wb3vC7io9Ir9161Y6d+5M586dAZg4cSKdO3fm5ZdfRq/Xs2vXLm655RZatmzJmDFj6Nq1K+vWrbM6fUbULbHJsbyw+gViEmMs6bbczqTTbsRT1LMVxDduDH/9JUG8EEKIWq8yG0blms5xb09ny9dTf/uXjFw7Z/txdra92eLHH8POnfZtT9hdpUfk+/TpU+btnRUrVlxRh8S1KTY5lkV7FuHn6mcZifA6lc69T31H/dPnrT+pSROIjYVmzaqxp0IIIUTV6Bnck+UHl6Oqapmj8sX7oPxf714kn9jHqr2nOZtVwGsxe5l9m52zsQ0ZAjffDH/8UfK42azt+PrXX1Y3XBRXB1mSLKpcdmE2S/YtKRHE+x4/z/3jv7UdxDdvrr15SBAvhBDiGlHRDaNSc1MZHjYcdyd3Zgxri5ujlr77h81H2XTonP079r//gaNj6ePx8bBggf3bE3YjgbyocvEp8SiKYgni/VJSuW/cN9RLtb6QJrtZkBbEB19Zui0hhBDiahMREkF0m2jS8tNIy0uzBPSqqnI6+zQ7Tu0gpzCHNclrmB43nV2pa/m/ASGW50/55R/yi0pvhHhFWrSAZ5+1Xvbss5Cdbd/2hN1IIC+qXMKxBLycvABocOg09z35DT7pmVbrnmrWgE/eGgGNGlVnF4UQQohqExESwav9XiUqNAqdosNkNnE4/TAnsk4Q6BlIE+8m6HV6zKqZmMQYdmd9TPMG2mDYodQcPlqTWE4Ll2HyZAgKKn38+HGYPdv+7Qm7kEBeVLnidFsND5zk/v/7Fq8M65/sj4cG8M07D5Dp5Wy1XAghhLhWuDu6E9kikql9ptI3pC/uju50CuhEfbf6ljvYiqLg7eyNj4s3jQPXov8vavskLon9p7Ls2yE3N3jrLetlb70FSUn2bU/YhQTyosoZdAYa7TnKfRO+xT0712qdg019mfvmveR6umDQVfk+ZUIIIcRVwdo6skspikJIfWeaB2rBtNGs8vwvuzCZ7Zxb/o474KabSh8vLISJE+3blrALCeRFlYs86cZ9T3+Pa26+1fLD7YOY9X99yHd3Jj0/nfDA8GruoRBCCFEzLl1HZouiKLRskoy/NlOVv1PSmb85xb6dURR4/33QWQkPf/sNJDPhVUcCeVG1Vq/mujEv45JfaLX4UJcQvn31bvKdHSzptnoF96rmTgohhBA14+J1ZOWp5+pJl1b7LF+/8+d+MvLsnFu+Qwd4/HHrZf/3f9rovLhqSCAvqs7y5Zhvvhl9Xp7V4gPhocx/9W6KXBy1dFt5WrotN0e3au6oEEIIUTOK15FVhKIo+HmnM7SjlhAiLbeID2MP2r9TM2aAr2/p4/v3w4cf2r89cdkkkBdVY8kS1GHD0BUUWC3ee2MrfpxxJ0WOBtLz08kx53Bb2G1EhERUc0eFEEKImmPQGcrcaPNiqqpi0BmYFNkKJ4MWws3dcJjk1Bz7dsrXF2bNsl42bRqcOmXf9sRlk0Be2N9PP6HefjtKkfXbfSdv7s3CaXdSaFDQKToGNR/EfQ3vo2/TvtXcUSGEEKJmhQeGk1GQUaG6xevIAn1ceaS3tmFikUnl1WV77d+xhx+Gjh1LH8/KgilT7N+euCwSyAv7+vln1LvvRjEarZfffz8Nl8TyUv8ZvBLxClP7TGVQ80E46yXlpBBCiLqnZ3BPbY1YOaPyl64je+ym5jTwcAJg5Z7TbEhMtW/H9Hr44APrZV9/DZs327c9cVkkkBf2s2QJ6siRKGaz9fKHHtJ++fX66u2XEEIIcZVyd3RnWNgwUnNTbQbzqqqSmltyHZmbk4HnIsMsdWYs3WP/dJS9esFdd1kvGz8ebP29F9VGAnlhH8uWod5xh+2R+HHj4NNPrae0EkIIIeqwiJAIottEk5afRlpemiWgV1WVtLw00vLTiG4TXWod2W2dG9O+sZbxZt+pLH7aetT+nXvjDXB1LX1882b49lv7tycqRXbeEZWSXZhNfEo8CccSMJqNGHQGBh924LrHZticE88zz2hvBBVclS+EEELUNREhEXRr3K3U39io0Ch6BfeymtFNp1N4aUgb7vx0IwBvrdjPzR0a4unsYL+OBQVpc+JffLF02fPPw+23g7u7/doTlSKBvKiw2ORYluxbgqIoeDl5odfpCdpxiI6T5qMU2hiJf/ppCeKFEEKICnB3dCeyRSSRLSIr/JxuIb7c3L4hf/xzknM5hXy0JpHJUa3t27Gnn4Yvv4Tk5JLHT5+Gd9+Fl16yb3uiwmSeg6iQ2ORYFu1ZhLezN97O3iiKQtDuo9wzeQGOtoL48ePhzTcliBdCCCGq0PNRYTj+l47y6/jDpJzLtW8Dzs5awG7NG2/A2bP2bU9UmATyolzZhdks2bcEP1c/y6YVjfYd555J83CysWMrjzwC770nQbwQQghRxYJ8XXmoZwgAhSYzs5dXQTrKW26B3r1LH8/OhldesX97okIkkBflik+JR1EUSxAfcPAk9z37Pc651jd7On5rf/jkEwnihRBCiGryRN8W+Llr6SiX7z5FwqFz9m1AUbTRd2vmzIGkJPu2JypEAnlRroRjCXg5aaviGxw6zX3PfIdLdr7Vursi2vHl2B6SnUYIIYSws+zCbGISY5geN52XYl9ietx0YhJjyC7Mxt3JwLODWlrqvr3yQIV3jK2w8HBtceulioqsL4YVVU6iLVEuo9mIoij4paRy/9Pf4ZaZZ7Xent6tWTzlVooUySsrhBBC2FNsciwvrH6BmMQYzKoZvU6PWTUTkxjDC6tfIDY5ltu7BtGsvpbdZnPyeTYk2XlUHmDWLOv7wSxYAFu32r89USYJ5EW5DDoDPkdTuX/iN7in51its79HSxa9GI1Jp2DQSTIkIYQQwl6sJZwAUBTFcmzRnkWsPbKGp/pfGJV/pypG5Vu21NbBWTNpEti7PVEmCeRFufqoTbh/4jd4nsu2Wn6wWwt+mnoHJgc96fnphAeGV3MPhRBCiGuTtYQTl1IUBT9XPxbvW8xNrTxo6a/ldd92JI2/Dqbav1MvvwxupfPaExsLf/5p//aETRLIi7IdPUqvUdPwSbUexB/qEsKPM+7E5GhAVVVUVHoF96rmTgohhBDXpksTTtiiKAoKChuPrS85Kv/nfvuPygcEaLnlrZk0Ccwyxba6SCAvbDtxAiIi0B05YrX4SIdgfph5F0YnB1RVJTU3leFhw63uPieEEEKIyrs44UR5vJ29STiWQGTbAMICPADYeSyDNQeqYFT+mWegQYPSx3fuhPnz7d+esEoCeWHd6dPQrx8kJlotPtqmMfNmj6TQ2YG0vDTS8tOIbhNNREhENXdUCCGEuHYVJ5yoCEVRMJqN6HQKEwZcGJV/b3Wi/aeue3hoU2ysefFFyLee3U7YlwTyorTUVOjfH/bts1qc0S6Uea/fS56zAZ2iIyo0itn9ZksQL4QQQtiZQWeo8NQYVVUtCScGtvGnbSNPAPaczOKftCrY2+WRR6BFi9LHjxyBjz+2f3uiFEkvIkpKS4MBA2D3buvlHTviFRvL876+1dsvIYQQog4KDwwnJjEGb2fvcuum56cTFRoFaKPzEwe0ZMw3WkrI5Ud1PGe287C8g4OWjnLEiNJls2bB6NHg7W3fNkUJMiIvLsjMhEGDYMcO6+Vt28LKlSBBvBBCCFEtegb31JJJlDMqby3hRERYAzoGavPrT+QqrNhz2v4dvOMOuP760sfPn4f337d/e6KESgfyf/31F0OHDqVRo0YoisLixYtLlKuqyssvv0zDhg1xcXGhf//+HDx40F79FVUlOxuiomDLFuvlLVvCqlVQv3719ksIIYSow9wd3RkWNozU3FSbwbythBOKUnKu/PuxSZjsPSqvKPDGG9bL3n0XMjLs254oodKBfE5ODh07duSjjz6yWv7GG2/w/vvvM2fOHBISEnBzc2PQoEHky6KHq1duLgwdChs2WC9v3lzLDRsQUL39EkIIIQQRIRFEt4kmLT+NtLw0S0Cvqmq5CSdualmfzkHaqHzi2Rz++Oek/TvYp492R/9S6enw4Yf2b09YVHqOfFRUFFFRUVbLVFXlf//7Hy+++CLDhg0D4Ntvv8Xf35/Fixdz1113XVlvhf3l58Pw4RAXZ728SRMtiG/cuDp7JYQQQoiLRIRE0K1xN+JT4kk4loDRbMSgMxAVGkWv4F6oqMQkxpQoCw8Mp2dwT/6vXwsenLsNgP+tOsDN7Rui19l58evUqbBiRenj77wDTz6pZbkRdmfXxa7JycmcOnWK/v37W455eXkRHh7Oxo0brQbyBQUFFBQUWL7OzMwEoKioiKKiInt2r0zFbVVnmzWuqAj9iBHoVq60Wqw2boxxxQpo2BCq8LrUyWt/lZBrX3Pk2tccufY1R679lXFSnOjXpB/9mvQrcXzN4TX8duA3FBS8nLxQFIUiYxF/7P+DpfuXEhUSRXMPlaQshUNnc/hlWwrDOzWyb+euuw59//7oVq0qefz8eUzvvYd50iT7tldLXPqat/drX1GvYLsvRVH49ddfGT58OAAbNmzgxhtv5MSJEzRs2NBS784770RRFH788cdS55g2bRrTp08vdXz+/Pm4urpebtdEecxmurz3HkFr11otzvfxIX7mTHJkJF4IIYS4au3K2sXG9I146D2s5ptXVZUsUxZNDQNYdlibL+/nrDKlkwm9nQflfffsodeUKaWOF3h4sPKzzzC5uNi3wVooNzeXkSNHkpGRgaen5xWfr8bTT06ePJmJEydavs7MzCQoKIiBAwfa5RusqKKiIlauXMmAAQNwcHCotnZrhKqiGz8evY0gXq1fH/3KldzUpk21dKdOXfurjFz7miPXvubIta85cu3tK7swm5VxK+kS0KXMTaNMJhO7Dq6ma3BXtqVkkZqvUNiwI9Fd7DxYN3gw5pUr0a1ZU+KwU1YWUcnJmJ95xr7t1QKXvuaLZ57Yi10D+YD/FkOePn26xIj86dOn6dSpk9XnODk54eTkVOq4g4NDjfyS11S71er55+Gzz6yX+figrFqFQ4cO1dsn6si1v0rJta85cu1rjlz7miPX3j4SjiRg0BswGMoP5xQUerXNZFuKFvB/tPYQ0dcF46C3cybyqVPhkkAeQP/uu+iffBLc3Kw86dpX/Jq39+verj+9kJAQAgICWL16teVYZmYmCQkJdO/e3Z5NiUrILswmJjGG6XHTWflQBLz+uvWK7u4QEwM1EMQLIYQQonISjiXg5eRVobquOlfSTFvoFeoHwNHzeSzadsz+nbrpJu1xqbNnYc4c+7dXx1U6kM/OzmbHjh3s+G/ToOTkZHbs2EFKSgqKovDUU08xc+ZMfvvtN/755x/uv/9+GjVqZJlHL6pXbHIsL6x+gZjEGLouTmDAl6U/JQPg5AS//w7dulVvB4UQQghxWYxmY5lTai6mKApF5iKe6n8hr/wHsYkUGs3279jLL1s//uabWsprYTeVDuS3bt1K586d6dy5MwATJ06kc+fOvPzfD+25555j/PjxPPLII1x//fVkZ2cTExODs7OzfXsuyhWbHMuiPYvwdvam97oUhry33Go9s0EPCxdqeWCFEEIIUSsYdIZyd3wtpqoqDjoHujbxoU8rbXPH4+l5/LT1qP071rcv9OxZ+vjp07an9orLUulAvk+fPpatgi9+zJ07F9A+8c2YMYNTp06Rn5/PqlWraNmyZdknFXaXXZjNkn1L8HP1o/X6/Qx7bbHVemYFvp3Yn+yBfaq1f0IIIYS4MuGB4WQUVGzn1FxzLtc3uh6ACReNyn+0JpECo8m+HVMUba68Na+/Dnl59m2vDrPzCgdxtYhPiUdRFJpvT+b2GQvR29iS+Y8JQ/i7TyviU+KruYdCCCGEuBI9g3taBlTLoqoqKio9g7RR8o5B3vQLawDAyYx8ftxSBaPy/fqBtfWRp07BF1/Yv706SgL5a1TCsQTaJmZy14sLMBRZ/6T956P92Ta0K97O3iQcS6jmHgohhBDiSrg7ujMsbBipuak2g3lVVUnNSyXcKxw3xwsZYyYMKDkqn28jVrhsZY3Kv/aatrO8uGISyF+j/A4e597JP+CYb30Hsb/u7cWGu24EtOlQRrOxOrsnhBBCCDuICIkguk00aflppOWlWQJ6VVVJy0sjLT+N28Juo4NHyYx07Rp7MbCNPwCnMwuYn5Bi/84NHGg9icaJE/DVV/Zvrw6SQP5adOAAD0yaj0u29U+7Cbd2I3Z0X8vXqqpi0NX43mBCCCGEuAwRIRG82u9VokKj0Ck6TGYTOkVHVGgUs/vNpm/Tvlafd3EGm4/jksgrrOa58kXWBxtFxUn0dq1JSYH+/XFPy7FavGNQR2LGRWq/XP9Jz08nKjSqunoohBBCCDtzd3QnskUkkS0iS5UV2QiY2zTyZHD7AJb9c4rU7AK+33SEh3s3s2/HoqLguutg69aSx1NS4PvvYdQo+7ZXx8iI/LXk9Gno3x+OWl+0sqdXa3579hZU3YUgvngBTK/gXtXVSyGEEEJcJf6vX0vL2N4na5PIKbDzVFtFgRdftF42ezaY7HwXoI6RQP5akZamzUU7eNBqcdJ1zVj04m2YL9qKWVVVUnNTGR42vMQCGCGEEELUDa0CPBjSoREA53MK+eXv4/ZvZOhQaN++9PGDB+Hnn+3fXh0igfy1IDsbBg+GXbusFh9q3ZA5UwZhdNADJRfARLeJJiIkojp7K4QQQoiryGM3XZhOM2/TkQpvMlVhOh1MmWK9bNYsMFfB7rJ1hATytV1+PgwfDps2WS/v1IkGcZvp1/4WqwtgJIgXQggh6ra2jbzoHOwNwL5TWWxPSbN/I3fcAaGhpY/v3g2//27/9uoIWexamxUVwV13werV1stbtYIVK3Bv0IDIBoFWF8AIIYQQQtwT3oS/U9IBmLcpha5NfO3bgF4PkyfD6NGly2bOhFtuKZGIQ1SMjMjXVmaz9suwZIn18uBgWLkSGjSo3n4JIYQQotYZ0qEhXi4OACz95yRpOYX2b+Tee7X45FJbt2oxi6g0CeRrI1WFceO0tE3W+PvDqlUQFFS9/RJCCCHEVSO7MJuYxBhmrpvJvBPzmLluJjGJMWQXZpeq6+yg5/augQAUGs38vM16Brwr4uAAkyZZL5s50/7t1QESyNdGL7wAn3xivczHR/tUa20emhBCCCHqhNjkWF5Y/QIxiTGW9XEms4mYxBheWP0CscmxpZ5zT/iF0fL5CSmYzXZe9ArabIKAgNLH163THqJSJJCvbV5/Xcu7ao2bGyxfbj3FkxBCCCHqhNjkWBbtWYS3szfezt4o/809VxTFcmzRnkWlgvlm9d25sUU9AA6fy2V9Uqr9O+fsDM88Y71s1iz7t3eNk0C+NvniC3j+eetlTk7w228QHl69fRJCCCHEVSO7MJsl+5bg5+pnCeD/v717j4uyyv8A/nlmBgaRm4qCgCCVSaiZl2JN3TbEC2upya6lpK5rtZr+vLWW5aVsS7NeW62uq+XutrVKaqtiuUlL4CVK0URT814mIiCS3K8Dc35/TEwO8yCozzPPzPB5v168gnOOc758mfTr47k0JkkSAr0DkXwq2W6ZTWJMhPXzDfuz1QnyD38A2stspv3sM+DgQXXmdFMs5F1FcrLljS9Hrwc2bwZieZQkERFRa5aRnQFJkpos4htIkgQJEjKyM2zah0YHoaOvEQCQevIy8kuqlQ/SxweYO1e+b9ky5edzYyzkXcHevZZjJuUuTJAk4IMPLMc2ERERUauWmZMJf6N/i8YGeAUgMyfTps1Dr8Nj91oOy6g3C2w6qMKmV8ByaIefn317cjJw7Jg6c7ohFvLO7ptvLFcb19TI969eDUyY4NiYiIiIyCnVmeuafRrfQJIk1Jnr7Nofuy8cup9e4sMD2airV+Hm1YAASzEv5403lJ/PTbGQd0INx0X9JWk2ymIHAaWl8gNffhmYPt2xwREREZHTMugMEKJlp80IIWDQ2d8NGhrQBrFRlnto8kurkX6qQNEYrebMAby97ds3bQKuXFFnTjfDQt7JNBwXlXFwCx6f/2/4XrU/6xUAMGMGsGiRY4MjIiIipxYTFoOSmpIWjS2uLkZMmPwhGYm/+HnT6/pMlTa9duwIPPGEfXttLfCPf6gzp5thIe9EGo6LCqpvgxkv7kCH3CLZcZcf+hWwciWvMiYiIiIbg8IHQQjR7FN5IQQEBAaHD5btf6BbR4S1awMA2HvmCi78WKF4rACaXl6zdi1QX6/OnG6EhbyTaDguKtgQgPFLNqHz2XzZcd/1i8SKJ6NRXlfp4AiJiIjI2fl4+mB01GgUVhY2WcwLIVBYWYgxUWPQ1rMtgJ+X9S7dvRSL0xfjT3tfRv87fj6xZv3+C+oE3K0bMGyYffuFC8Cnn6ozpxthIe8kMrIzoDMLJLy6DZGHf5Adc6l7CDa9/CjqPQx2x0URERERAUBsZCwSohNQVF2Eoqoia0EvhEBRVRGKqouQEJ2A2EjLsdXX3gJrFmbodXqYhRk1HrugkyxPxZMys1FSaVIn4Bkz5NtXr1ZnPjfCQt5JZF7cj8S1XyL6i5Oy/YVdOmDDaxNQ622UPS6KiIiIqEFsZCyWDVmG+G7x1sJcr9Mjvls8lg9ZblPEN3ULbJBfW9wRZrndtaK2Hh/s+0GdYEeOBCIi7Ns/+ww4e1adOd0EC3kn8ct/pqH/jizZvtJAX/z79cdRGWD556+mjosiIiIiauDj6YMRd4zAosGLkBiSiEWDF2HEHSNsltM0dwtsr8jLkGB5ov/PL8+jqlaFdet6PTBtmnzfmjXKz+dGWMg7g1Wr8OB6+aUyVT5eWP/64ygJDrC2NXVcFBEREVFLteQWWF/vGnTtfBUAUFRpwqaDKp1gM3Uq4Olp3/7ee0Al9wU2hYW81jZuhJg9W7bL5GlA0rLxKIjsZNN+veOiiIiIiFqipbfA9rotz/r5ui/Ow6TGBVEdOwLjxtm3FxcDSUnKz+cmWMhr6X//AyZNgiSzq9ysk/DRS7/FxV7hNu3NHRdFRERE1BItvQW2vW8VwjoWAwAuFVdh+5FcdQK63qbXFl5y1dqwkNfKgQPA2LGASX4H+PZnR+PMgDtt2uSOiyIiIiK6GTdyC2yvyJ+L97V7voPZrEJhHRMD9O1r337kCLBvn/LzuQHFC/mXXnrJut6q4SMqKkrpaVzbqVPAr38NVMhfrpA8dSB2/zK82eOiiIiIiG7WjdwC69kmB3cEWz4/V1CO1JOXlQ9IkngU5Q1S5Yl8jx49kJeXZ/3IyOCZ51Y5OcDw4cCPP8r3z5+PuL+lIL5bPHSSDvXmeugknd1xUURERES34kZvgX0mrpe17W+7v2vx0/wb8thjQLt29u0ffQQUFCg/n4tT5egTg8GA4ODgFo2tqalBTU2N9evS0lIAgMlkgqmJZSdqaJhL1TmvXoVh2DBI2fI7vs0TJ6L+lVdglCQMiRiCIRFDmozTnTgk9ySLudcOc68d5l47zL02msq7UTJi5B0jsfXUVgS2kT+CUgiBwqpCjI0ai19FBCMq+Aecyi/DNxeL8cWZyxhwWwdlg/XwgO53v4P+rbcafxOof+cdmBcsUHY+lTXOvdLvfUko/Nepl156CW+88Qb8/f3h5eWFAQMGYPny5QgPD29y/NKlS+3ak5KS4O3trWRomtLX1OD+JUvQ/vRp2f78/v1xYMECCAOPlSQiIiLHOVp2FJklmZAgwVvnDUmSIIRApbkSAgIx/jG42/duAEBWoYT3z+oBAN39zXg6WvkTbLzz8hD39NN2h4FUBgbi83fegdDrFZ/TUSorKzFhwgSUlJTAz8/vll9P8UJ+586dKC8vR/fu3ZGXl4elS5fi0qVLOH78OHx9fe3Gyz2R79KlCwoLCxX5BlvKZDIhNTUVQ4cOhYeHh9IvDv1vfgPdzp2y3eb770f9p58CbvQXlxuhau7puph77TD32mHutcPca6MleS+vLceXF7/EwdyDMJlN8NB54N6QezGoyyCbAzbq6s0YvvJLZF+tAgBsm/YL9AxVvl7TjxoFXUqKXXvdpk0Qjzyi+HxqaZz70tJSBAYGKlbIK/74Nz4+3vr53XffjZiYGERERGDz5s2YOnWq3Xij0Qij0WjX7uHhocn/5Lc6b3ltOTKyM5CZk4k6cx0M0OGJVV8idGea/C/o2RO6HTug82/+HFd3p9XPnJh7LTH32mHutcPca+N6eW/n0Q4PRT2Eh6IeauY1gGkP3IEXth0DALyb8QPWPN5P8VgxcyYgU8gbVq+WP2/eyTXkXun3verHTwYEBODOO+/EuXPn1J5Kc+nn07EwbSFSzqXALMzQSzoMXfs/hCY3UcRHRFjepHKbOoiIiIic0Ni+oejoa3kIm/JtPs4VlCs/yYgRwG232bfv3QtkZSk/n4tSvZAvLy/Hd999h86dO6s9labSz6djy4ktCPAKQIBXACRJwv2b9+H+j/bL/4LAQMuFUKGhjg2UiIiI6BZ4eejxxKBIAJZ7mt778rzyk+j1wKxZ8n1vv638fC5K8UL+j3/8I/bs2YMffvgBX331FR555BHo9XqMHz9e6amcRnltObaf2o5A7593fPdMP45ha1NlxwsfH2DnTuDOO2X7iYiIiLRSXluOlHMpWLp7KRanL8bS3UuRci4F5bU/P3mfEBMOb0/LptPkw5dQXlOnfCBTpgAy+yuxcSOQl6f8fC5I8UI+JycH48ePR/fu3TFu3Dh06NAB+/fvR8eOHZWeymlkZGdYL78CgK5HfsCY15Jlx9YZdPj6ry8A/fs7MEIiIiKi5tktE9bpYRZmpJxLwcK0hUg/nw4A8PXywOh7LKsKKmrr8fGR3Ou97M3x8wNk9lfCZALWrFF+PhekeCG/ceNG5ObmoqamBjk5Odi4cSNuv/12padxKpk5mfA3WjardjxfgMcWbYTBVG83TkjA1hcewacRtY4OkYiIiOi65JYJA4AkSda2LSe2WIv5xJifjxbfkHlBnQui/u//LDe+NrZmDVBdrfx8Lkb1NfKtQZ25DpIkwbewDI8v2ACvihrZcSkzRuDEgz1RZ1bhn5+IiIiIbpLcMuHGJElCoHcgkk8lo7y2HD1D/dG7SwAA4NvcUnyTU6J8YLfdBowebd9eWAgkJSk/n4thIa8Ag84Az/JqJC7YAP+CUtkxX40bgMyEGAghYNDx0iciIiJyHo2XCTdFkiRIkJCRnQGg0VP5/RfUCW7OHPn2t9+27LZtxVjIK+AXnfoiYUkSgr+7LNt//Fc9kPqHoQCA4upixITFODI8IiIiouu6dplwcwK8ApCZkwkAePjuEPh6WR5QfnI0FyWVJuWD++UvgXvusW8/dgxIT1d+PhfCQv5WCYHY5R+i++GLst0/3B2B5OfHQOgs1x0LCAwOH+zgIImIiIia1rBMuCUkSbIuE27jqUdC3zAAQLXJjK2Hc5QPTpKAuXPl+1r5UZQs5G/VkiXwWP+hbNeViEBsfOVR1HkaIIRAYWUhxkSNsbnqmIiIiEhrBp2hxZtVGy8TnmCz6TVbnU2vjz4KBAXZt+/YAZw9q/x8LoKF/K1Ytw545RXZrrL2Plj/WiKqfLxQVFWEouoiJEQnIDYy1sFBEhEREV1fTFgMSmpatlm18TLhO4N8cV/X9gCAcwXlOHD+qvIBGo3A00/L961cqfx8LoKF/M36738hpk+X7apr2wZJryXiaidf6CQd4rvFY/mQ5SziiYiIyCkNCh9kWQLczNP0ppYJJ/7i56fySQeyVYkR06YBnp727e+9BxQXqzOnk+PxKTfj66+BceMg1dufFQ+DAYatyfjDsGGOj4uIiIjoJvh4+mB01GhsObGlySMoG5YJJ0Qn2C0THtEzGO3beuJqRS12HsvHkodq0MHHqGyQnToBiYmWwv1aFRXAP/4BPPOMsvO5AD6Rv1Hffw+MHAlUVsr3r1sHsIgnIiIiFxMbGYuE6AQUVRehqKrI+nReCNHsMmGjQY/f9rNseq2tN+M/h1TY9AoAs2fLt69cCdS1vnt6WMjfiB9/BOLjgYIC+f6XXwZ+9zuHhkRERESklNjIWCwbsgzx3eKhk3SoN9e3eJnw+Ptsl9eYzSpseu3dG3jwQfv27Gxg507l53NyXFrTUlVVwKhRwJkz8v1PPAEsWuTYmIiIiIgU5uPpgxF3jMCIO0bc0K/rGtgWg+4IRMa5Qlz4sRJffleIwd06Kh/gnDnArl327evWAQ8/rPx8ToxP5Fuivt6yJuurr+T74+OBNWss55wSERERtVLX3vSalKnSpteRI4HwcPv2//4XyFFpSY+TYiHfHCEslxBs2ybf37cvsHkzYOA/bhAREVHrFhcdhEAfy8kyaScLUFxZq/wker1lJURjZrP9Rlg3x0K+OW++CaxaJd/Xtavlb38+Pg4NiYiIiMgZeeh1GH1PKADLptcdR/PUmWjKFEAnU8b+/e+WlRStBAv569m0CfjjH+X72rcHUlKA4GDHxkRERETkxMb2DbV+vjVLpaUuYWGWJTaNZWcDqanqzOmEWMg3Ze9eYNIk+T6jEfj4Y6B7d8fGREREROTkojv7ISrYFwCQlV2M76+UqzPRk0/Kt7/7rjrzOSEW8nJOnABGjwZqZdZ1SRKwYQMwcKDj4yIiIiJycpIkIaFvmPXrbYcvqTNRfDwQGmrf/sknQJ5KS3qcDAv5xnJzLW+Mpq76festICHBoSERERERuZLR94RA99NhfluzLqlzprzBAPz+9/btdXXAv/6l/HxOiIX8NQyVlTCMGmVZXyVn3rymbxQjIiIiagXKa8uRci4FS3cvxeL0xVi6eylSzqWgvPbnJTSd/LysZ8hfKq7CgR+uqhPM1Knyx3///e+WU2zcHAv5BiYT7l2xAtLRo/L948YBb7zh2JiIiIiInEj6+XQsTFuIlHMpMAsz9Do9zMKMlHMpWJi2EOnn061jr930uuWQSpteIyKA4cPt27//HkhPt293MyzkAUAI6KdPR6dvvpHvHzwYeP99+WOOiIiIiFqB9PPp2HJiCwK8AhDgFQDppyfhkiRZ27ac2GIt5of3CIav0XLPzqfH8lBVq9KxkE1tel23Tp35nAgrUwB4+WXoPvhAvu+uu4DkZMDLy6EhERERETmL8tpybD+1HYHegdYCvjFJkhDoHYjkU8kory2Hl4cev+7VGQBQUVuP/53IVye4hx8GgoLs27dtA65cUWdOJ8FCHgAGDoTw9bVvDw4Gdu60nBlPRERE1EplZGdAkqQmi/gGkiRBgoSM7AwAjZbXZKl0eo2Hh+WCqMZMJsuKCjfGQh4A4uJQl56OqmsLdh8f4NNPLWuviIiIiFqxzJxM+Bv9WzQ2wCsAmTmZAIB7u7ZHl/ZtAAAZZ6/gcmm1OgE+8YR8+7p1gFDhxBwnwUK+Qe/e2LtiBUR0NKDXA//5D9Cnj9ZREREREWmuzlzX7NP4BpIkoc5cBwDQ6SQ80sdyprxZAMlqnSl/++3AkCH27WfOWC75dFMs5K9R3bEj6nbvBrZvl98BTURERNQKGXQGiBY+2RZCwKAzWL8e2+fa5TU5LX6dG/bUU/Lt//ynOvM5ARbyjQUEACNHah0FERERkdOICYtBSU1Ji8YWVxcjJizG+nXXwLboF9EOAHDmcjm+zS1VJUaMHg0EBtq3b9kCVFSoM6fGWMgTERER0XUNCh8EIUSzT9OFEBAQGBw+2KY9oW+Y9fOtam16NRqBxET79ooKywmEbki1Qn716tXo2rUrvLy8EBMTgwMHDqg1FRERERGpyMfTB6OjRqOwsrDJYl4IgcLKQoyJGoO2nm1t+kb26gxPg6Xs/PibSzDVq3Tr6qRJ8u1NHTPu4lQp5Ddt2oR58+bhxRdfRFZWFnr37o3hw4ejoKBAjemIiIiISGWxkbFIiE5AUXURiqqKrAW9EAJFVUUoqi5CQnQCYiNj7X6tv7cHht5lOeu9ts6M76+otNSlTx8gOtq+/fPPgbw8debUkCqF/Jtvvoknn3wSU6ZMQXR0NNauXQtvb2/80403GxARERG5u9jIWCwbsgzx3eKhk3SoN9dDJ+kQ3y0ey4csly3iGzz5y9vwt8S+OLAwDt2DZe7vUYIkARMn2rebzUBSkjpzasjQ/JAbU1tbi0OHDuH555+3tul0OsTFxWHfvn1242tqalBTU2P9urTUsgHCZDLBZDIpHV6TGuZy5Jxkwdxrh7nXDnOvHeZeO8y9NpTOu1EyYkjEEAyJsD/u8Xpz9Ahuix7BbQGYYTKptLQGAMaNg+GFFyA1WgIkPvgAdbNmqTevjMa5V/q9LwmFzwDKzc1FaGgovvrqKwwYMMDa/uyzz2LPnj3IzMy0Gf/SSy9h6dKldq+TlJQEb29vJUMjIiIiolbg/sWL0fHYMbv29LffRlnXro4P6CeVlZWYMGECSkpK4Ofnd8uvp/gT+Rv1/PPPY968edavS0tL0aVLFwwbNkyRb7ClTCYTUlNTMXToUHh4eDhsXmLutcTca4e51w5zrx3mXhutMe/SlSvAk0/atT+QnQ3z0087LI7GuW9YeaIUxQv5wMBA6PV6XL582ab98uXLCA4OthtvNBphNBrt2j08PDR5s2k1LzH3WmLutcPca4e51w5zr41Wlfdx44BZs4CqKptm/caN0L/+OqDXOzSchtwrnX/FN7t6enqiX79+SEtLs7aZzWakpaXZLLUhIiIiIlKFnx8wZox9e24ukJ7u8HDUosqpNfPmzcO6devw/vvv4+TJk5g+fToqKiowZcoUNaYjIiIiIrIld3oNAPz7346NQ0WqrJF/9NFHceXKFSxZsgT5+fm45557kJKSgqCgIDWmIyIiIiKyNXQoEBQENFruja1bgTVrgLZt5X+dC1HtZteZM2fiwoULqKmpQWZmJmJiYtSaioiIiIjIlsEAjB9v315RAWzb5vh4VKBaIU9EREREpCk3X17DQp6IiIiI3FOfPkB0tH37559bNr66OBbyREREROSeJAmYNMm+3WwGkpIcH4/CWMgTERERkftKTLQU9I25wfIaFvJERERE5L7CwoAHH7RvP3rU8uHCWMgTERERkXtratPr+vWOjUNhLOSJiIiIyL0lJABt2lg+lyQgNhZ47z1g0SJt47pFqlwIRURERETkNHx9gblzLf9NTAS6dNE6IkWwkCciIiIi9/fqq1pHoDgurSEiIiIickEs5ImIiIiIXBALeSIiIiIiF8RCnoiIiIjIBbGQJyIiIiJyQSzkiYiIiIhcEAt5IiIiIiIXxEKeiIiIiMgFOd2FUEIIAEBpaalD5zWZTKisrERpaSk8PDwcOndrx9xrh7nXDnOvHeZeO8y9Nph37TTOfUN921Dv3iqnK+TLysoAAF3c5OpcIiIiIqJrlZWVwd/f/5ZfRxJK/ZVAIWazGbm5ufD19YUkSQ6bt7S0FF26dMHFixfh5+fnsHmJudcSc68d5l47zL12mHttMO/aaZx7IQTKysoQEhICne7WV7g73RN5nU6HsLAwzeb38/Pjm1wjzL12mHvtMPfaYe61w9xrg3nXzrW5V+JJfANudiUiIiIickEs5ImIiIiIXBAL+Z8YjUa8+OKLMBqNWofS6jD32mHutcPca4e51w5zrw3mXTtq597pNrsSEREREVHz+ESeiIiIiMgFsZAnIiIiInJBLOSJiIiIiFwQC3kiIiIiIhfEQp6IiIiIyAWxkP/J6tWr0bVrV3h5eSEmJgYHDhzQOiS3snz5ctx7773w9fVFp06dMGbMGJw+fdpmTHV1NWbMmIEOHTrAx8cHCQkJuHz5skYRu6/XXnsNkiRhzpw51jbmXj2XLl3C448/jg4dOqBNmzbo1asXvv76a2u/EAJLlixB586d0aZNG8TFxeHs2bMaRuwe6uvrsXjxYkRGRqJNmza4/fbb8ac//QnXHtTG3Ctj7969ePjhhxESEgJJkpCcnGzT35I8X716FYmJifDz80NAQACmTp2K8vJyB34Xrul6uTeZTHjuuefQq1cvtG3bFiEhIZg0aRJyc3NtXoO5vznNve+vNW3aNEiShLffftumXYncs5AHsGnTJsybNw8vvvgisrKy0Lt3bwwfPhwFBQVah+Y29uzZgxkzZmD//v1ITU2FyWTCsGHDUFFRYR0zd+5cfPLJJ/joo4+wZ88e5ObmYuzYsRpG7X4OHjyId955B3fffbdNO3OvjqKiIgwcOBAeHh7YuXMnTpw4gT//+c9o166ddczrr7+OlStXYu3atcjMzETbtm0xfPhwVFdXaxi561uxYgXWrFmDv/71rzh58iRWrFiB119/HatWrbKOYe6VUVFRgd69e2P16tWy/S3Jc2JiIr799lukpqZix44d2Lt3L5566ilHfQsu63q5r6ysRFZWFhYvXoysrCxs3boVp0+fxqhRo2zGMfc3p7n3fYNt27Zh//79CAkJsetTJPeCxH333SdmzJhh/bq+vl6EhISI5cuXaxiVeysoKBAAxJ49e4QQQhQXFwsPDw/x0UcfWcecPHlSABD79u3TKky3UlZWJrp16yZSU1PFAw88IGbPni2EYO7V9Nxzz4lBgwY12W82m0VwcLB44403rG3FxcXCaDSKDz/80BEhuq2RI0eK3//+9zZtY8eOFYmJiUII5l4tAMS2bdusX7ckzydOnBAAxMGDB61jdu7cKSRJEpcuXXJY7K6uce7lHDhwQAAQFy5cEEIw90ppKvc5OTkiNDRUHD9+XERERIi33nrL2qdU7lv9E/na2locOnQIcXFx1jadToe4uDjs27dPw8jcW0lJCQCgffv2AIBDhw7BZDLZ/ByioqIQHh7On4NCZsyYgZEjR9rkGGDu1fTxxx+jf//++O1vf4tOnTqhT58+WLdunbX//PnzyM/Pt8m9v78/YmJimPtbdP/99yMtLQ1nzpwBAHzzzTfIyMhAfHw8AObeUVqS53379iEgIAD9+/e3jomLi4NOp0NmZqbDY3ZnJSUlkCQJAQEBAJh7NZnNZkycOBHz589Hjx497PqVyr1BkWhdWGFhIerr6xEUFGTTHhQUhFOnTmkUlXszm82YM2cOBg4ciJ49ewIA8vPz4enpaf3NpUFQUBDy8/M1iNK9bNy4EVlZWTh48KBdH3Ovnu+//x5r1qzBvHnz8MILL+DgwYOYNWsWPD09MXnyZGt+5X7/Ye5vzYIFC1BaWoqoqCjo9XrU19fj1VdfRWJiIgAw9w7Skjzn5+ejU6dONv0GgwHt27fnz0JB1dXVeO655zB+/Hj4+fkBYO7VtGLFChgMBsyaNUu2X6nct/pCnhxvxowZOH78ODIyMrQOpVW4ePEiZs+ejdTUVHh5eWkdTqtiNpvRv39/LFu2DADQp08fHD9+HGvXrsXkyZM1js69bd68GRs2bEBSUhJ69OiBI0eOYM6cOQgJCWHuqdUxmUwYN24chBBYs2aN1uG4vUOHDuEvf/kLsrKyIEmSqnO1+qU1gYGB0Ov1did0XL58GcHBwRpF5b5mzpyJHTt2YNeuXQgLC7O2BwcHo7a2FsXFxTbj+XO4dYcOHUJBQQH69u0Lg8EAg8GAPXv2YOXKlTAYDAgKCmLuVdK5c2dER0fbtN11113Izs4GAGt++fuP8ubPn48FCxbgscceQ69evTBx4kTMnTsXy5cvB8DcO0pL8hwcHGx3uERdXR2uXr3Kn4UCGor4CxcuIDU11fo0HmDu1fLFF1+goKAA4eHh1j93L1y4gGeeeQZdu3YFoFzuW30h7+npiX79+iEtLc3aZjabkZaWhgEDBmgYmXsRQmDmzJnYtm0b0tPTERkZadPfr18/eHh42PwcTp8+jezsbP4cbtGQIUNw7NgxHDlyxPrRv39/JCYmWj9n7tUxcOBAu2NWz5w5g4iICABAZGQkgoODbXJfWlqKzMxM5v4WVVZWQqez/SNOr9fDbDYDYO4dpSV5HjBgAIqLi3Ho0CHrmPT0dJjNZsTExDg8ZnfSUMSfPXsWn3/+OTp06GDTz9yrY+LEiTh69KjNn7shISGYP38+PvvsMwAK5v7m9+i6j40bNwqj0Sj+9a9/iRMnToinnnpKBAQEiPz8fK1DcxvTp08X/v7+Yvfu3SIvL8/6UVlZaR0zbdo0ER4eLtLT08XXX38tBgwYIAYMGKBh1O7r2lNrhGDu1XLgwAFhMBjEq6++Ks6ePSs2bNggvL29xfr1661jXnvtNREQECC2b98ujh49KkaPHi0iIyNFVVWVhpG7vsmTJ4vQ0FCxY8cOcf78ebF161YRGBgonn32WesY5l4ZZWVl4vDhw+Lw4cMCgHjzzTfF4cOHrSejtCTPI0aMEH369BGZmZkiIyNDdOvWTYwfP16rb8llXC/3tbW1YtSoUSIsLEwcOXLE5s/empoa62sw9zenufd9Y41PrRFCmdyzkP/JqlWrRHh4uPD09BT33Xef2L9/v9YhuRUAsh/vvfeedUxVVZV4+umnRbt27YS3t7d45JFHRF5ennZBu7HGhTxzr55PPvlE9OzZUxiNRhEVFSXeffddm36z2SwWL14sgoKChNFoFEOGDBGnT5/WKFr3UVpaKmbPni3Cw8OFl5eXuO2228TChQttChjmXhm7du2S/f198uTJQoiW5fnHH38U48ePFz4+PsLPz09MmTJFlJWVafDduJbr5f78+fNN/tm7a9cu62sw9zenufd9Y3KFvBK5l4S45po7IiIiIiJyCa1+jTwRERERkStiIU9ERERE5IJYyBMRERERuSAW8kRERERELoiFPBERERGRC2IhT0RERETkgljIExERERG5IBbyREREREQuiIU8EREREZELYiFPREREROSCWMgTEREREbmg/wfIMcmU1/fCDgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import kf_book.ekf_internal as ekf\n",
    "ekf.plot_ball()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8419c108",
   "metadata": {},
   "source": [
    "我们可以通过使 $Q$ 变大来人为地强制卡尔曼滤波器跟踪球。 这将导致过滤器不信任其预测，并缩放卡尔曼增益 $K$ 以强烈支持测量。 然而，这不是一个有效的方法。 如果卡尔曼滤波器正确预测了过程，我们不应该通过告诉滤波器存在不存在的过程错误来“撒谎”。 对于某些问题，在某些条件下，我们可能会逃脱，但总的来说，卡尔曼滤波器的性能会不合标准。\n",
    "\n",
    "回忆一下**设计卡尔曼滤波器**一章，加速度是\n",
    "\n",
    "$$a_x = (0.0039 + \\frac{0.0058}{1+\\exp{[(v-35)/5]}})*v*v_x \\\\\n",
    "a_y = (0.0039 + \\frac{0.0058}{1+\\exp{[(v-35)/5]}})*v*v_y- g\n",
    "$$\n",
    "\n",
    "在我们开发这个主题时，使用这些方程将*非常*令人不快，所以现在我将退回到一个更简单的一维问题，使用这个简化的加速度方程，它没有考虑阻力系数的非线性：\n",
    "\n",
    "$$\\begin{aligned}\n",
    "\\ddot{y} &= \\frac{0.0034ge^{-y/20000}\\dot{y}^2}{2\\beta} - g \\\\\n",
    "\\ddot{x} &= \\frac{0.0034ge^{-x/20000}\\dot{x}^2}{2\\beta}\n",
    "\\end{aligned}$$\n",
    "\n",
    "这里的 $\\beta$ 是弹道系数，数字越大表示阻力越小。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e55e7117",
   "metadata": {},
   "source": [
    "这仍然是非线性的，所以我们需要在当前状态点对这个方程进行线性化。 如果我们的状态是位置和速度，我们需要一个方程来表示 $\\mathbf{x}$ 的一些任意小的变化，如下所示：\n",
    "\n",
    "$$ \\begin{bmatrix}\\Delta \\dot{x} \\\\ \\Delta \\ddot{x} \\\\ \\Delta \\dot{y} \\\\ \\Delta \\ddot{y}\\end{bmatrix} = \n",
    "\\large\\begin{bmatrix}\n",
    "\\frac{\\partial \\dot{x}}{\\partial x} & \n",
    "\\frac{\\partial \\dot{x}}{\\partial \\dot{x}} & \n",
    "\\frac{\\partial \\dot{x}}{\\partial y} & \n",
    "\\frac{\\partial \\dot{x}}{\\partial \\dot{y}} \\\\ \n",
    "\\frac{\\partial \\ddot{x}}{\\partial x} & \n",
    "\\frac{\\partial \\ddot{x}}{\\partial \\dot{x}}& \n",
    "\\frac{\\partial \\ddot{x}}{\\partial y}& \n",
    "\\frac{\\partial \\dot{x}}{\\partial \\dot{y}}\\\\\n",
    "\\frac{\\partial \\dot{y}}{\\partial x} & \n",
    "\\frac{\\partial \\dot{y}}{\\partial \\dot{x}} & \n",
    "\\frac{\\partial \\dot{y}}{\\partial y} & \n",
    "\\frac{\\partial \\dot{y}}{\\partial \\dot{y}} \\\\ \n",
    "\\frac{\\partial \\ddot{y}}{\\partial x} & \n",
    "\\frac{\\partial \\ddot{y}}{\\partial \\dot{x}}& \n",
    "\\frac{\\partial \\ddot{y}}{\\partial y}& \n",
    "\\frac{\\partial \\dot{y}}{\\partial \\dot{y}}\n",
    "\\end{bmatrix}\\normalsize\n",
    "\\begin{bmatrix}\\Delta x \\\\ \\Delta \\dot{x} \\\\ \\Delta \\dot{y} \\\\ \\Delta \\ddot{y}\\end{bmatrix}$$\n",
    "\n",
    "方程不包含 x 和 y，因此任何包含两者的偏导数都必须为零。 我们也知道 $\\large\\frac{\\partial \\dot{x}}{\\partial x}\\normalsize = 0$ 和 $\\large\\frac{\\partial \\dot{x}}{\\partial \\dot{ x}}\\normalsize = 1$，所以我们的矩阵最终是\n",
    "\n",
    "$$\\mathbf{F} = \\begin{bmatrix}0&1&0&0 \\\\\n",
    "\\frac{0.0034e^{-x/22000}\\dot{x}^2g}{44000\\beta}&0&0&0\n",
    "\\end{bmatrix}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f032f855",
   "metadata": {},
   "source": [
    "$$\\begin{aligned}\\ddot{x} &= -\\frac{1}{2}C_d\\rho A \\dot{x}\\\\\n",
    "\\ddot{y} &= -\\frac{1}{2}C_d\\rho A \\dot{y}-g\\end{aligned}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "7b2026c0",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy.abc import *\n",
    "from sympy import *\n",
    "\n",
    "init_printing(pretty_print=True, use_latex='mathjax')\n",
    "\n",
    "x1 = (0.0034*g*exp(-x/22000)*((x)**2))/(2*b) - g\n",
    "\n",
    "x2 = (a*g*exp(-x/c)*(Derivative(x)**2))/(2*b) - g\n",
    "\n",
    "#pprint(x1)\n",
    "#pprint(Derivative(x)*Derivative(x,n=2))\n",
    "#pprint(diff(x2, x))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4f778ff2",
   "metadata": {},
   "source": [
    "**孤立文本\n",
    "这种方法有很多问题。首先，当然，线性化不会产生准确的答案。更重要的是，我们不是线性化实际路径，而是我们的过滤器对路径的估计。我们将估计线性化，因为它在统计上可能是正确的；但当然不是必须的。所以如果过滤器的输出不好，就会导致我们线性化一个不正确的估计，这几乎肯定会导致一个更糟糕的估计。在这些情况下，过滤器将迅速发散。这就是卡尔曼滤波器的“黑魔法”的用武之地。我们试图将估计线性化，但不能保证滤波器稳定。大量关于卡尔曼滤波器的文献专门讨论这个问题。另一个问题是我们需要使用解析方法对系统进行线性化。为某些问题找到分析解决方案可能很困难或不可能。在其他情况下，我们可能能够找到线性化，但计算非常昂贵**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bce69405",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    "[1] http://sympy.org"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "478d0d3b",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
